package entity

type OverviewReq struct {
	Page     int    `json:"page"`
	Size     int    `json:"size"`
	UserName string `json:"user_name"` // 用户名
	OpenId   string `json:"openId"`    // 对应tgid
}

type OverviewResp struct {
	Details []*OverviewDetail `json:"details"`
	Total   int64             `json:"total"`
}

type OverviewDetail struct {
	UserName                   string `json:"userName" bson:"userName"`             // 用户名 用户ID
	OpenId                     string `json:"openId" bson:"openId"`                 // 对应tgid
	FirstLoginDate             int64  `json:"firstLoginDate"`                       // 用户首次登录日期
	CreateTime                 int64  `json:"createTime" bson:"createTime"`         // 用户注册时间
	LastLoginTime              int64  `json:"lastLoginTime" bson:"loginTime"`       // 用户最后一次登录日期
	MaxSuccessions             int    `json:"maxSuccessions" bson:"maxSuccessions"` // 用户累计登录天数
	DieRoll                    int64  `json:"dieRoll"`                              // 用户骰子投掷次数
	CurrentIntegral            int64  `json:"currentIntegral"`                      // 用户当前积分
	SuccessfulInvitations      int64  `json:"successfulInvitations"`                // 用户邀请成功人数
	Withdrawals                int64  `json:"withdrawals"`                          // 用户提现次数（USDT）
	CumulativeWithdrawalAmount int64  `json:"cumulativeWithdrawalAmount"`           // 用户累计提现金额（USDT）
	TurntableRuns              int64  `json:"turntableRuns"`                        // 用户转盘实际抽奖次数
	PointsRanking              int64  `json:"pointsRanking"`                        // 用户积分排名
	RankingOfDiceRolls         int64  `json:"rankingOfDiceRolls"`                   // 用户骰子投掷次数排名
	InvitesRanking             int64  `json:"invitesRanking"`                       // 用户邀请人数排名
	TonValue                   int64  `json:"tonValue"`                             // 用户账户Ton值
	UsdtValue                  int64  `json:"usdtValue"`                            // 用户账户USDT值
}

type UserListReq struct {
	Page     int    `json:"page"`
	Size     int    `json:"size"`
	UserName string `json:"user_name"` // 用户名
	OpenId   string `json:"openId"`    // 对应tgid
}

type UserListResp struct {
	Details []*UserListDetail `json:"details"`
	Total   int64             `json:"total"`
}

type UserListDetail struct {
	UserName       string `json:"userName" bson:"userName"`       // 用户名 用户ID
	OpenId         string `json:"openId" bson:"openId"`           // 对应tgid
	CreateTime     int64  `json:"createTime" bson:"createTime"`   // 用户注册时间
	FirstLoginDate int64  `json:"firstLoginDate"`                 // 用户首次登录日期
	LoginIP        string `json:"loginIP" bson:"loginIP"`         // 登录IP
	LastLoginTime  int64  `json:"lastLoginTime" bson:"loginTime"` // 用户最后一次登录日期
	TonWall        string `json:"tonWall" bson:"tonWall"`         // 绑定钱包地址
	Fingerprint    string `json:"fingerprint"`                    // 指纹数据
}

type TurntableReq struct {
	Page      int    `json:"page"`
	Size      int    `json:"size"`
	UserName  string `json:"user_name"`  // 用户名
	OpenId    string `json:"openId"`     // 对应tgid
	StartTime int64  `json:"start_time"` // 开始时间
	EndTime   int64  `json:"end_time"`   // 结束时间
}

type TurntableResp struct {
	Details []*TurntableDetail `json:"details"`
	Total   int64              `json:"total"`
}

type TurntableDetail struct {
	UserName               string `json:"userName" bson:"userName"` // 用户名 用户ID
	OpenId                 string `json:"openId" bson:"openId"`     // 对应tgid
	TurntableExecutionTime int64  `json:"turntableExecutionTime"`   // 转盘执行时间
	PrizeName              string `json:"prizeName"`                // 抽奖奖品名
	PrizeNumber            int64  `json:"prizeNumber"`              // 抽奖奖品数量
}

type AssetsReq struct {
	Page     int    `json:"page"`
	Size     int    `json:"size"`
	UserName string `json:"user_name"` // 用户名
	OpenId   string `json:"openId"`    // 对应tgid
}

type AssetsResp struct {
	Details []*AssetsDetail `json:"details"`
	Total   int64           `json:"total"`
}

type AssetsDetail struct {
	UserName        string `json:"userName" bson:"userName"` // 用户名 用户ID
	OpenId          string `json:"openId" bson:"openId"`     // 对应tgid
	TonValue        int64  `json:"tonValue"`                 // 用户账户Ton值
	UsdtValue       int64  `json:"usdtValue"`                // 用户账户USDT值
	StatisticalDate int64  `json:"statisticalDate"`          // 统计日期
}

type AssetsRecordReq struct {
	Page          int    `json:"page"`
	Size          int    `json:"size"`
	UserName      string `json:"user_name"`      // 用户名
	OpenId        string `json:"openId"`         // 对应tgid
	OperationType string `json:"operation_type"` // 操作类型 增加:increase;减少:decrease
	Currency      string `json:"currency"`       // 货币类型
	Amount        int64  `json:"amount"`         // 变动金额
	StartTime     int64  `json:"start_time"`     // 开始时间
	EndTime       int64  `json:"end_time"`       // 结束时间
}

type AssetsRecordResp struct {
	Details []*AssetsRecordDetail `json:"details"`
	Total   int64                 `json:"total"`
}

type AssetsRecordDetail struct {
	UserName                 string `json:"userName" bson:"userName"` // 用户名 用户ID
	OpenId                   string `json:"openId" bson:"openId"`     // 对应tgid
	AssetType                string `json:"assetType"`                // 资产增长类型
	AssetsGrowth             int64  `json:"assetsGrowth"`             // 资产增长数量
	AcquisitionTime          int64  `json:"acquisitionTime"`          // 获取资产时间
	SourceOfAssetAcquisition string `json:"sourceOfAssetAcquisition"` // 资产获取来源
}

type InviteReq struct {
	Page     int    `json:"page"`
	Size     int    `json:"size"`
	UserName string `json:"user_name"` // 用户名
	OpenId   string `json:"openId"`    // 对应tgid
}

type InviteResp struct {
	Details []*InviteDetail `json:"details"`
	Total   int64           `json:"total"`
}

type InviteDetail struct {
	UserName                        string `json:"userName" bson:"userName"`        // 用户名 用户ID
	OpenId                          string `json:"openId" bson:"openId"`            // 对应tgid
	InvitationHits                  int64  `json:"invitationHits"`                  // 邀请按钮点击次数
	InviteID                        string `json:"inviteID"`                        // 被邀请成功用户ID
	IfInviteVIP                     bool   `json:"ifInviteVIP"`                     // 被邀请人是否为telegram会员
	InviteTime                      int64  `json:"inviteTime"`                      // 邀请成功时间
	SuccessfulInvitationsLV2        int64  `json:"successfulInvitationsLV2"`        // 被邀请成功用户lv>2的人数
	CumulativesuccessfulInvitations int64  `json:"cumulativesuccessfulInvitations"` // 累计邀请成功人数
	InvitationChannel               string `json:"invitationChannel"`               // 邀请渠道记录
}

type ActiveReq struct {
	Page     int    `json:"page"`
	Size     int    `json:"size"`
	UserName string `json:"user_name"` // 用户名
	OpenId   string `json:"openId"`    // 对应tgid
}

type ActiveResp struct {
	Details []*ActiveDetail `json:"details"`
	Total   int64           `json:"total"`
}

type ActiveDetail struct {
	UserName                   string `json:"userName" bson:"userName"`             // 用户名 用户ID
	OpenId                     string `json:"openId" bson:"openId"`                 // 对应tgid
	IfUserVip                  bool   `json:"ifUserVip"`                            // 用户Telegram会员身份
	CreateTime                 int64  `json:"createTime" bson:"createTime"`         // 用户注册时间
	LastLoginTime              int64  `json:"lastLoginTime" bson:"loginTime"`       // 用户最后一次登录日期
	MaxSuccessions             int    `json:"maxSuccessions" bson:"maxSuccessions"` // 用户累计登录天数
	DieHits                    int64  `json:"dieHits"`                              // 用户骰子点击次数
	InvitationHits             int64  `json:"invitationHits"`                       // 邀请按钮点击次数
	SuccessfulInvitations      int64  `json:"successfulInvitations"`                // 用户邀请成功人数
	Withdrawals                int64  `json:"withdrawals"`                          // 用户提现次数
	CumulativeWithdrawalAmount int64  `json:"cumulativeWithdrawalAmount"`           // 用户累计提现金额
	TurntableClicks            int64  `json:"turntableClicks"`                      // 用户转盘点击次数
	TurntableRuns              int64  `json:"turntableRuns"`                        // 用户转盘实际抽奖次数
}

type TaskCompletionReq struct {
	Page     int    `json:"page"`
	Size     int    `json:"size"`
	UserName string `json:"user_name"` // 用户名
	OpenId   string `json:"openId"`    // 对应tgid
}

type TaskCompletionResp struct {
	Details []*TaskCompletionDetail `json:"details"`
	Total   int64                   `json:"total"`
}

type TaskCompletionDetail struct {
	UserName        string `json:"userName" bson:"userName"` // 用户名 用户ID
	OpenId          string `json:"openId" bson:"openId"`     // 对应tgid
	DicePerDay      int64  `json:"dicePerDay"`               // 每日骰子数量
	IsJoinTgChannel bool   `json:"isJoinTgChannel"`          // 是否加入TG频道
	IsFollowTwitter bool   `json:"isFollowTwitter"`          // 是否关注推特
	IsJoinDcChannel bool   `json:"isJoinDcChannel"`          // 是否加入DC频道
	IsBindTwitter   bool   `json:"isBindTwitter"`            // 是否绑定推特
	IsFollowYoutube bool   `json:"isFollowYoutube"`          // 是否关注Youtube账号
	InviteNumber    int64  `json:"inviteNumber"`             // 邀请好友数量
}

type BehaviorMonitoringReq struct {
	Page     int    `json:"page"`
	Size     int    `json:"size"`
	UserName string `json:"user_name"` // 用户名
	OpenId   string `json:"openId"`    // 对应tgid
}

type BehaviorMonitoringResp struct {
	Details []*BehaviorMonitoringDetail `json:"details"`
	Total   int64                       `json:"total"`
}

type BehaviorMonitoringDetail struct {
	UserName         string `json:"userName" bson:"userName"` // 用户名 用户ID
	OpenId           string `json:"openId" bson:"openId"`     // 对应tgid
	DieExecutionTime int64  `json:"dieExecutionTime"`         // 骰子游戏执行时间
}
