syntax = "proto3";
option go_package = ".;pb";
import "errorcode.proto";
import "user_db.proto";
import "userexpand.proto";
import "pagoda_db.proto";

//用户登录
message UserLoginReq {
  string account = 1; //账号
  string sid = 2;     //区服编号
}

message UserLoginResp {
  DBUser data = 1;
  DBUserExpand ex = 2; //用户扩展
  int64 timeNow = 3;   // 服务器时间
}

// 获取用户信息
message UserInfoReq {}

message UserInfoResp {
  DBUser data = 1;
  DBUserExpand ex = 2; //用户扩展
}

//登出
message UserLogoutReq {}

message UserLogoutResp {}

//注册
message UserRegisterReq {
  string account = 1;
  string sid = 2;
}

message UserRegisterResp {
  ErrorCode Code = 1;
  string account = 2;
}

message UserLoadResp { CacheUser data = 1; }

//创角
message UserCreateReq {
  string NickName = 1; //昵称
}

message UserCreateResp { bool IsSucc = 1; }

// 玩家资源变更推送
message UserResChangedPush {
  int64 gold = 1;    //@go_tags(`bson:"gold"`) 金币
  int64 exp = 2;     //@go_tags(`bson:"exp"`) 经验
  int64 diamond = 5; //@go_tags(`bson:"diamond"`)  钻石
  int32 friend = 6;  //@go_tags(`bson:"frined`) 友情点
}

//用户设置获取
message UserGetSettingReq {}

message UserGetSettingResp {
  DBUserSetting setting = 1; //用户设置
}

// 更新用户设置
message UserUpdateSettingReq { DBUserSetting setting = 1; }
message UserUpdateSettingResp { string uid = 1; }

// 初始化验证码
message UserVeriCodeReq {}
message UserVeriCodeResp {
  int32 code = 1; //验证码
}

//初始化用户数据
message UserInitdataReq {
  int32 code = 1; //验证码
}
message UserInitdataResp { string uid = 1; }

//修改玩家名字
message UserModifynameReq {
  string name = 1; //玩家名称
}
message UserModifynameResp {
  string uid = 1;
  uint32 count = 2; //剩余修改次数
  string name = 3;
}

// 修改头像
message UserModifyavatarReq {
  string avatarId = 1; //头像ID
}

message UserModifyavatarResp {
  string uid = 1;
  string avatarId = 2;
}

// 修改背景图片
message UserModifybgpReq {
  int32 bgpId = 1; //背景图片ID
}

message UserModifybgpResp {
  string uid = 1;
  int32 bgpId = 2; //背景图片ID
}

// 修改形象
message UserModifyfigureReq { int32 figureId = 1; }

message UserModifyfigureResp {
  string uid = 1;
  int32 figureId = 2;
}

// 图鉴
message UserGetTujianReq {}
message UserGetTujianResp { repeated string heroids = 1; }

//玩家等级经验变化推送
message UserLvChangedPush {
  string uid = 1;
  int64 exp = 2;
  int32 lv = 3;
}

// 用户签名
message UserModifysignReq { string sign = 1; }

message UserModifysignResp { string uid = 1; }

// 玩家战斗记录
message UserBattlerecordReq {}

message UserBattlerecordResp {
  string uid = 1;
  DBPagodaRecord pagodaRecord = 2; //爬塔战斗记录
}