package entity

import "github.com/mhaya/game/game_cluster/internal/mdb/models"

// AdminResp \database\game_cluster\nodes\webadmin\entity\admin.go
type AdminResp struct {
	ToKen  string `json:"token"`
	RoleID string `json:"role_id"`
}
type AdminLoginReq struct {
	Username string `json:"username"`
	Password string `json:"password"`
}
type AdminAddReq struct {
	Password string `json:"password"`
	RealName string `json:"real_name"`
	Username string `json:"username"`
	Pid      string `json:"pid"`
	RoleId   string `json:"role_id"`
	Status   int    `json:"status"`
}

type AdminListResp struct {
	Id            interface{} `json:"id" bson:"_id"`                          // 自增ID
	Username      string      `json:"username" bson:"username"`               // 用户名
	Password      string      `json:"password" bson:"password"`               // 密码
	RealName      string      `json:"real_name" bson:"real_name"`             // 真实姓名
	Pid           any         `json:"pid" bson:"pid"`                         // 父级ID
	RoleId        string      `json:"role_id" bson:"role_id"`                 // 角色ID
	Status        int         `json:"status" bson:"status"`                   // 状态 0:禁用 1:启用
	ManagerAuth   int8        `json:"manager_auth" bson:"manager_auth"`       // 管理员权限
	LastLoginIp   string      `json:"last_login_ip" bson:"last_login_ip"`     // 最后登录IP
	LastLoginTime int64       `json:"last_login_time" bson:"last_login_time"` // 最后登录时间
	RoleName      string      `json:"role_name" bson:"role_name"`             // 角色名
	CreatedAt     int64       `json:"created_at" bson:"created_at"`
	UpdatedAt     int64       `json:"updated_at" bson:"updated_at"`
	DeletedAt     int64       `json:"deleted_at" bson:"deleted_at"`
}

type AdminChangePasswordReq struct {
	Password string `json:"

"`
	Username string `json:"username"`
}

type AdminDelReq struct {
	Username string `json:"username"`
}

type AdminFindAllReq struct {
	Page     int    `json:"page"`
	Size     int    `json:"size"`
	Username string `json:"username"`
	Total    int64  `json:"total"`
}

type AdminUpdateStatusReq struct {
	Username string `json:"username"`
	Status   int    `json:"status"`
}

type PlayerListReq struct {
	Page        int    `json:"page" binding:"required"`
	Size        int    `json:"size" binding:"required"`
	UserName    string `json:"userName"`                    // 用户名
	NickName    string `json:"nickName" bson:"nickName"`    // 昵称
	OpenId      string `json:"openId" bson:"openId"`        // 对应tgid
	Pid         string `json:"pid" bson:"pid"`              // 上级ID
	XID         string `json:"xID" bson:"xID"`              // 绑定推特ID
	TonWall     string `json:"tonWall" bson:"tonWall"`      // 绑定钱包地址
	Email       string `json:"email" bson:"email"`          // 邮箱
	LevelMin    int    `json:"levelMin" bson:"level"`       // 等级最小值
	LevelMax    int    `json:"levelMax" bson:"level"`       // 等级最大值
	Status      int    `json:"status" bson:"status"`        // 状态 1:有效 2:禁用
	LoginIP     string `json:"loginIP" bson:"loginIP"`      // 登录IP
	JoinTimeMin int64  `json:"joinTimeMin" bson:"joinTime"` // 注册时间最小值
	JoinTimeMax int64  `json:"joinTimeMax" bson:"joinTime"` // 注册时间最大值
}

type PlayerListResp struct {
	UserName      string `json:"userName" bson:"userName"`           // 用户名
	OpenId        string `json:"openId" bson:"openId"`               // 对应tgid
	UserNameMaybe string `json:"userNameMaybe" bson:"userNameMaybe"` // 昵称
	NickName      string `json:"nickName" bson:"nickName"`           // 昵称
	Pid           string `json:"pid" bson:"pid"`                     // 上级ID
	XID           string `json:"xID" bson:"xID"`                     // 绑定推特ID
	TonWall       string `json:"tonWall" bson:"tonWall"`             // 绑定钱包地址
	Email         string `json:"email" bson:"email"`                 // 邮箱
	Level         int    `json:"level" bson:"level"`                 // 等级
	Status        int    `json:"status" bson:"status"`               // 状态  1:有效 2:禁用
	LoginTime     int64  `json:"loginTime" bson:"loginTime"`         // 登陆时间
	LoginIP       string `json:"loginIP" bson:"loginIP"`             // 登录IP
	JoinIP        string `json:"joinIP" bson:"joinIP"`               // 注册IP
	JoinTime      int64  `json:"joinTime" bson:"joinTime"`           // 注册时间
}

type PlayerInfoReq struct {
	UserName string `json:"userName" binding:"required"` // 用户名
}

type PlayerInfoResp struct {
	UserName       string                `json:"userName" bson:"userName"`             // 用户名
	OpenId         string                `json:"openId" bson:"openId"`                 // 对应tgid
	UserNameMaybe  string                `json:"userNameMaybe" bson:"userNameMaybe"`   // 昵称
	NickName       string                `json:"nickName" bson:"nickName"`             // 昵称
	Pid            string                `json:"pid" bson:"pid"`                       // 上级ID
	XID            string                `json:"xID" bson:"xID"`                       // 绑定推特ID
	TonWall        string                `json:"tonWall" bson:"tonWall"`               // 绑定钱包地址
	Email          string                `json:"email" bson:"email"`                   // 邮箱
	Level          int                   `json:"level" bson:"level"`                   // 等级
	Status         int                   `json:"status" bson:"status"`                 // 状态  1:有效 2:禁用
	LoginTime      int64                 `json:"loginTime" bson:"loginTime"`           // 登陆时间
	LoginIP        string                `json:"loginIP" bson:"loginIP"`               // 登录IP
	JoinIP         string                `json:"joinIP" bson:"joinIP"`                 // 注册IP
	JoinTime       int64                 `json:"joinTime" bson:"joinTime"`             // 注册时间
	Avatar         string                `json:"avatar" bson:"avatar"`                 // 头像
	IsRobot        int                   `json:"isRobot" bson:"isRobot"`               // 是否为机器人
	IsLeader       int                   `json:"isLeader" bson:"isLeader"`             // 是否是社区长
	IsVip          int                   `json:"isVip" bson:"isVip"`                   // 是否为VIP
	Successions    int                   `json:"successions" bson:"successions"`       // 连续登陆天数
	MaxSuccessions int                   `json:"maxSuccessions" bson:"maxSuccessions"` // 最大连续等级天数
	PrevTime       int64                 `json:"prevTime" bson:"prevTime"`             // 上次登陆时间
	UpdateTime     int64                 `json:"updateTime" bson:"updateTime"`         // 更新时间
	IsDrawShare    int                   `json:"isDrawShare" bson:"isDrawShare"`       // 0未领取，1已领取
	DrawShareTime  int64                 `json:"drawShareTime" bson:"drawShareTime"`   // 领取时间
	FirstReward    int                   `json:"firstReward" bson:"firstReward"`       // 是否已领取首次登陆奖励
	Item           models.ToItemBasePack `json:"item" bson:"item"`                     // 道具
	SinIn          models.SignIn         `json:"sinIn" bson:"sinIn"`                   // 签到
	DailyTask      models.DailyTask      `json:"dailyTask" bson:"dailyTask"`           // 日常任务
	AchieveTask    models.AchieveTask    `json:"achieveTask" bson:"achieveTask"`       // 成就任务
	RankReward     models.RankReward     `json:"rankReward" bson:"rankReward"`         // 排行奖励
	Invite         models.Invite         `json:"invite" bson:"invite"`                 // 邀请
	InviteReward   *models.InviteReward  `json:"inviteReward" bson:"inviteReward"`     // 邀请奖励
	Roll           *models.Roll          `json:"roll" bson:"roll"`                     // 抽奖
}

type RewardListReq struct {
	Page      int    `json:"page" binding:"required"`
	Size      int    `json:"size" binding:"required"`
	UserName  string `json:"userName"`   // 用户名
	StartTime int64  `json:"start_time"` // 开始时间
	EndTime   int64  `json:"end_time"`   // 结束时间
}

type RewardListResp struct {
	UserName   string        `json:"userName" bson:"userName"` // 用户名
	AddReward  []*ItemReward `json:"AddReward" bson:"addReward"`
	Desc       *Desc         `json:"desc" bson:"desc"`
	CreateTime int64         `json:"createTime" bson:"createTime"`
}

type Desc struct {
	ID    int `json:"id"`     // 中奖位置
	CurID int `json:"cur_id"` // 规则id
}

type ItemReward struct {
	ItemID   int    // itemID:道具ID
	Amount   int    // amount:数量
	ItemName string // itemName:道具名称
}
