53 lines
2.7 KiB
Go
53 lines
2.7 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// SignInRewardConfig 保存签到奖励主配置。
|
|
type SignInRewardConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_sign_in_reward_sys_origin"`
|
|
Enabled bool `gorm:"column:enabled"`
|
|
Timezone string `gorm:"column:timezone;size:64"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
// TableName 返回签到奖励主配置表名。
|
|
func (SignInRewardConfig) TableName() string { return "sign_in_reward_config" }
|
|
|
|
// SignInRewardDayConfig 保存签到奖励 7 天循环子配置。
|
|
type SignInRewardDayConfig struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
ConfigID int64 `gorm:"column:config_id;index:idx_sign_in_reward_day_config,priority:1"`
|
|
DayIndex int `gorm:"column:day_index;index:idx_sign_in_reward_day_config,priority:2"`
|
|
GoldAmount int64 `gorm:"column:gold_amount"`
|
|
RewardGroupID *int64 `gorm:"column:reward_group_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 (SignInRewardDayConfig) TableName() string { return "sign_in_reward_day_config" }
|
|
|
|
// SignInRewardLog 记录签到奖励发放结果,兼作幂等审计日志。
|
|
type SignInRewardLog struct {
|
|
ID int64 `gorm:"column:id;primaryKey"`
|
|
EventID string `gorm:"column:event_id;size:128;uniqueIndex:uk_sign_in_reward_event"`
|
|
SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_sign_in_reward_user_day,priority:1;index:idx_sign_in_reward_user_time,priority:1"`
|
|
UserID int64 `gorm:"column:user_id;uniqueIndex:uk_sign_in_reward_user_day,priority:2;index:idx_sign_in_reward_user_time,priority:2"`
|
|
ClaimDate string `gorm:"column:claim_date;size:10;uniqueIndex:uk_sign_in_reward_user_day,priority:3;index:idx_sign_in_reward_claim,priority:2"`
|
|
DayIndex int `gorm:"column:day_index"`
|
|
StreakCount int `gorm:"column:streak_count"`
|
|
GoldAmount int64 `gorm:"column:gold_amount"`
|
|
RewardGroupID *int64 `gorm:"column:reward_group_id"`
|
|
RewardGroupName string `gorm:"column:reward_group_name;size:255"`
|
|
Status string `gorm:"column:status;size:32;index:idx_sign_in_reward_claim,priority:3"`
|
|
ErrorMessage string `gorm:"column:error_message;size:255"`
|
|
CreateTime time.Time `gorm:"column:create_time"`
|
|
UpdateTime time.Time `gorm:"column:update_time"`
|
|
}
|
|
|
|
// TableName 返回签到奖励日志表名。
|
|
func (SignInRewardLog) TableName() string { return "sign_in_reward_log" }
|