package model import "time" // UserBaseInfo 对应用户基础资料表,用于在结算和展示时补齐榜单用户信息。 type UserBaseInfo struct { ID int64 `gorm:"column:id;primaryKey"` // 用户 ID Account string `gorm:"column:account;size:64"` // 用户账号 UserAvatar string `gorm:"column:user_avatar;size:255"` // 头像地址 UserNickname string `gorm:"column:user_nickname;size:255"` // 昵称 OriginSys string `gorm:"column:origin_sys;size:32"` // 来源系统 CountryCode string `gorm:"column:country_code;size:32"` // 国家编码 CountryName string `gorm:"column:country_name;size:128"` // 国家名称 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 } // TableName 返回用户基础资料表名。 func (UserBaseInfo) TableName() string { return "user_base_info" } // WeekStarActivityConfig 对应周榜活动主配置,一条记录描述一个系统下的一个周榜活动时间窗。 type WeekStarActivityConfig struct { ID int64 `gorm:"column:id;primaryKey"` // 配置主键 SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_week_star_sys_origin_window,priority:1;index:idx_week_star_active_lookup,priority:1"` // 系统标识,例如 LIKEI Enabled bool `gorm:"column:enabled;index:idx_week_star_active_lookup,priority:2"` // 活动开关 StartAt time.Time `gorm:"column:start_at;uniqueIndex:uk_week_star_sys_origin_window,priority:2;index:idx_week_star_active_lookup,priority:3"` // 活动开始时间 EndAt time.Time `gorm:"column:end_at;uniqueIndex:uk_week_star_sys_origin_window,priority:3;index:idx_week_star_active_lookup,priority:4"` // 活动结束时间 Timezone string `gorm:"column:timezone;size:64"` // 活动结算时区 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回周榜活动主配置表名。 func (WeekStarActivityConfig) TableName() string { return "week_star_activity_config" } // WeekStarActivityRewardConfig 对应周榜奖励配置,定义某个名次绑定哪个奖励组。 type WeekStarActivityRewardConfig struct { ID int64 `gorm:"column:id;primaryKey"` // 奖励配置主键 ConfigID int64 `gorm:"column:config_id;uniqueIndex:uk_week_star_reward_rank,priority:1"` // 关联活动配置 ID Rank int `gorm:"column:rank;uniqueIndex:uk_week_star_reward_rank,priority:2"` // 排名名次 RewardGroupID int64 `gorm:"column:reward_group_id"` // 奖励组 ID RewardGroupName string `gorm:"column:reward_group_name;size:255"` // 奖励组名称 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回周榜奖励配置表名。 func (WeekStarActivityRewardConfig) TableName() string { return "week_star_activity_reward_config" } // WeekStarRankSnapshot 是每周结算时冻结的排行榜快照,用于后台查看和发奖依据留痕。 type WeekStarRankSnapshot struct { ID int64 `gorm:"column:id;primaryKey"` // 快照主键 ConfigID int64 `gorm:"column:config_id;uniqueIndex:uk_week_star_snapshot_rank,priority:1;index:idx_week_star_snapshot_cycle,priority:1"` // 活动配置 ID CycleKey string `gorm:"column:cycle_key;size:32;uniqueIndex:uk_week_star_snapshot_rank,priority:2;index:idx_week_star_snapshot_cycle,priority:2"` // 周期标识 Rank int `gorm:"column:rank;uniqueIndex:uk_week_star_snapshot_rank,priority:3"` // 结算名次 PeriodStartAt time.Time `gorm:"column:period_start_at"` // 周期开始时间 PeriodEndAt time.Time `gorm:"column:period_end_at"` // 周期结束时间 UserID int64 `gorm:"column:user_id"` // 上榜用户 ID Account string `gorm:"column:account;size:64"` // 上榜用户账号 UserAvatar string `gorm:"column:user_avatar;size:1024"` // 上榜用户头像 UserNickname string `gorm:"column:user_nickname;size:255"` // 上榜用户昵称 CountryCode string `gorm:"column:country_code;size:32"` // 国家编码 CountryName string `gorm:"column:country_name;size:128"` // 国家名称 ScoreGold int64 `gorm:"column:score_gold"` // 结算金币分值 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回周榜快照表名。 func (WeekStarRankSnapshot) TableName() string { return "week_star_rank_snapshot" } // WeekStarRewardRecord 记录每个周期每个奖励名次的发奖状态,便于重试和审计。 type WeekStarRewardRecord struct { ID int64 `gorm:"column:id;primaryKey"` // 发奖记录主键 ConfigID int64 `gorm:"column:config_id;uniqueIndex:uk_week_star_reward_record_rank,priority:1;index:idx_week_star_reward_record_cycle,priority:1"` // 活动配置 ID CycleKey string `gorm:"column:cycle_key;size:32;uniqueIndex:uk_week_star_reward_record_rank,priority:2;index:idx_week_star_reward_record_cycle,priority:2"` // 周期标识 Rank int `gorm:"column:rank;uniqueIndex:uk_week_star_reward_record_rank,priority:3"` // 发奖名次 UserID int64 `gorm:"column:user_id;index:idx_week_star_reward_record_user"` // 收奖用户 ID Account string `gorm:"column:account;size:64"` // 收奖用户账号 UserAvatar string `gorm:"column:user_avatar;size:1024"` // 收奖用户头像 UserNickname string `gorm:"column:user_nickname;size:255"` // 收奖用户昵称 CountryCode string `gorm:"column:country_code;size:32"` // 国家编码 CountryName string `gorm:"column:country_name;size:128"` // 国家名称 RewardGroupID int64 `gorm:"column:reward_group_id"` // 奖励组 ID RewardGroupName string `gorm:"column:reward_group_name;size:255"` // 奖励组名称 ScoreGold int64 `gorm:"column:score_gold"` // 该用户本周期最终积分 TrackID int64 `gorm:"column:track_id"` // 发奖请求幂等追踪 ID Status string `gorm:"column:status;size:32;index:idx_week_star_reward_record_status"` // 发奖状态 RetryCount int `gorm:"column:retry_count"` // 已重试次数 LastError string `gorm:"column:last_error;size:1024"` // 最近一次失败原因 SentAt *time.Time `gorm:"column:sent_at"` // 实际发奖时间 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回周榜发奖记录表名。 func (WeekStarRewardRecord) TableName() string { return "week_star_reward_record" }