syntax = "proto3";
option go_package = ".;pb";
import "battle_msg.proto";

message DBSociaty {
  string id = 1;         //@go_tags(`bson:"_id"`) ID
  string creater = 2;    //@go_tags(`bson:"creater"`) 创建人
  string name = 3;       //@go_tags(`bson:"name"`) 公会名称
  string icon = 4;       //@go_tags(`bson:"icon"`) 公会图标
  string notice = 5;     //@go_tags(`bson:"notice"`) 公告
  int32 exp = 6;         //@go_tags(`bson:"exp"`) 经验
  int32 lv = 7;          //@go_tags(`bson:"lv"`) 等级
  bool isApplyCheck = 8; //@go_tags(`bson:"isApplyCheck"`) 是否必须审批
  int32 applyLv = 9;     //@go_tags(`bson:"applyLv"`)  等级限制
  int64 ctime = 10;      //@go_tags(`bson:"ctime"`) 创建时间
  repeated ApplyRecord applyRecord =
      11; //@go_tags(`bson:"applyRecord"`) 入会申请
  repeated SociatyMember members = 12; //@go_tags(`bson:"members"`） 公会成员
  int32 activity = 13;                 //@go_tags(`bson:"activity"`) 活跃度
  int64 accuseTime = 14; //@go_tags(`bson:"accuseTime"`) 会长弹劾时间
  int32 lastSignCount = 15; //@go_tags(`bson:"lastSignCount"`) 昨日签到的人数
  repeated string signIds = 16; //@go_tags(`bson:"signIds"`)  今日签到的玩家IDs
  int64 dismissTime = 17; //@go_tags(`bson:"dismissTime"`) 公会解散时间
  int64 dismissCD = 18;   //@go_tags(`bson:"dismissCD"`) 解散CD
}

//申请记录
message ApplyRecord {
  string uid = 1;  //@go_tags(`bson:"uid"`)  申请的玩家ID
  int64 ctime = 2; //@go_tags(`bson:"ctime"`)  申请时间
}

//职位
enum SociatyJob {
  NOJOB = 0;         //无职位/权限
  MEMBER = 1;        //成员
  ADMIN = 2;         //管理员
  VICEPRESIDENT = 3; //副会长
  PRESIDENT = 4;     //会长
}

// 公会成员
message SociatyMember {
  string uid = 1;         //@go_tags(`bson:"uid"`) 成员ID
  SociatyJob job = 2;     //@go_tags(`bson:"job"`) 职位
  int64 ctime = 3;        //@go_tags(`bson:"ctime"`) 入会时间
  int32 contribution = 4; //@go_tags(`bson:"contribution"`) 贡献值
  map<int32, ChallengeTeam> teams = 5; //@go_tags(`bson:"teams"`)  公会BOSS 队伍
}

// 日志
message SociatyLog {
  string content = 1; //@go_tags(`bson:"content"`)  日志内容
  int64 ctime = 2;    //@go_tags(`bson:"ctime"`) 创建时间
}

message DBSociatyLog {
  string sociatyId = 1;         //@go_tags(`bson:"sociatyId") 公会ID
  repeated SociatyLog list = 2; //@go_tags(`bson:"list"`) 日志
}

// 公会成员任务
message DBSociatyTask {
  string sociatyId = 1;              //@go_tags(`bson:"sociatyId") 公会ID
  string uid = 2;                    //@go_tags(`bson:"uid"`) 用户ID
  repeated SociatyTask taskList = 3; //@go_tags(`bson:"taskList"`) 任务列表
  repeated SociatyActivity activityList =
      4;                    //@go_tags(`bson:"activityList"`) 活跃度列表
  int64 lastUpdateTime = 5; //@go_tags(`bson:"lastUpdateTime"`) 上次初始时间
}

// 任务
message SociatyTask {
  int32 taskId = 1; //@go_tags(`bson:"taskId"`) 任务ID
  int32 status = 2; //@go_tags(`bson:"status"`) 领取状态:0未完成 1已完成
  int32 received = 3; //@go_tags(`bson:"received"`) 领取状态: 0未领取 1已领取
}

// 活跃度
message SociatyActivity {
  int32 id = 1;     //@go_tags(`bson:"id"`) 活跃度ID
  int32 status = 2; //@go_tags(`bson:"status"`) 领取状态:0未领取 1已领取
}

//任务活跃度排行榜
message DBSociatyRank {
  string sociatyId = 1; //@go_tags(`bson:"sociatyId"`)
  string name = 2;      //@go_tags(`bson:"name"`) 公会名称
  int32 lv = 3;         //@go_tags(`bson:"lv"`) 等级
  int32 activity = 4;   //@go_tags(`bson:"activity"`) 活跃度
  int64 ctime = 5;      //@go_tags(`bson:"ctime"`) 公会创建时间
}

// 阵容明细
message ChallengeTeamInfo {
  string heroId = 1; //@go_tags(`bson:"heroId"`) 英雄ID
}

// 阵容
message ChallengeTeam {
  BattleFormation formation = 1; //@go_tags(`bson:"teamInfo"`) 阵容
}

// 赛季信息
message DBSociatyBossSports {
  int64 endTime = 1; //@go_tags(`bson:"endTime"`) 公会BOSS赛季结束时间
  int64 settlementTime = 2; //@go_tags(`bson:"settlementTime"`) 赛季结算时间
  repeated string uids = 3; //@go_tags(`bson:"uids"`) 参赛玩家
}

// 玩家每次挑战的记录
message ChallengeRecord {
  map<int32, ChallengeTeam> teams = 1; //@go_tags(`bson:"teams"`) 挑战队伍
  int64 integral = 2; //@go_tags(`bson:"integral"`) 公会BOSS挑战积分
  int32 duration = 3; //@go_tags(`bson:"duration"`) 战斗耗时
  int64 rtime = 4;    //@go_tags(`bson:"rtime"`) 记录时间
}

message ChallengeTask {
  int32 taskId = 1; //@go_tags(`bson:"taskId"`) 任务ID
  int32 status = 2; //@go_tags(`bson:"status"`) 任务状态 0未完成 1可领取 2已领取
}

//玩家赛季记录
message DBSociatyBossRecord {
  string uid = 1;                      //@go_tags(`bson:"uid"`) 玩家ID
  string sociatyId = 2;                //@go_tags(`bson:"sociatyId"`) 公会ID
  repeated ChallengeRecord record = 4; //@go_tags(`bson:"record"`) 赛季挑战记录
  int64 total = 5; //@go_tags(`bson:"total"`) 赛季总积分(前三积分和)
  repeated int64 integrals = 6; //@go_tags(`bson:"integrals"`) 赛季中最高积分
  int32 status = 7; //@go_tags(`bson:"status"`)0当前赛季记录 1归档赛季记录
  repeated ChallengeTask tasks = 8; //@go_tags(`bson:"tasks"`) 积分任务
}