package model import "time" // ResidentRegisterRewardConfig 保存常驻注册奖励配置。 type ResidentRegisterRewardConfig struct { ID int64 `gorm:"column:id;primaryKey"` // 配置主键 SysOrigin string `gorm:"column:sys_origin;size:32;uniqueIndex:uk_resident_register_reward_sys_origin"` // 系统标识 Enabled bool `gorm:"column:enabled"` // 配置是否启用 GoldAmount int64 `gorm:"column:gold_amount"` // 注册赠送金币数量 RewardGroupID *int64 `gorm:"column:reward_group_id"` // 道具奖励组 ID DailyLimit int64 `gorm:"column:daily_limit"` // 每日可发放的奖励份数,0 表示不限 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 CreateUser *int64 `gorm:"column:create_user"` // 创建用户 UpdateUser *int64 `gorm:"column:update_user"` // 更新用户 } // TableName 返回注册奖励配置表名。 func (ResidentRegisterRewardConfig) TableName() string { return "resident_register_reward_config" } // ResidentRegisterRewardLog 记录注册奖励消费链路的处理结果。 type ResidentRegisterRewardLog struct { ID int64 `gorm:"column:id;primaryKey"` // 日志主键 EventID string `gorm:"column:event_id;size:128;uniqueIndex:uk_register_reward_event"` // 业务事件 ID StreamMessageID string `gorm:"column:stream_message_id;size:64"` // Redis Stream 消息 ID SysOrigin string `gorm:"column:sys_origin;size:32;index:idx_register_reward_sys_user,priority:1;index:idx_register_reward_claim,priority:1"` // 系统标识 UserID int64 `gorm:"column:user_id;index:idx_register_reward_sys_user,priority:2"` // 用户 ID ClaimDate string `gorm:"column:claim_date;size:10;index:idx_register_reward_claim,priority:2"` // 领取日期,格式为 YYYY-MM-DD GoldAmount int64 `gorm:"column:gold_amount"` // 实际发放金币数 RewardGroupID *int64 `gorm:"column:reward_group_id"` // 实际发放道具奖励组 ID GrantMode string `gorm:"column:grant_mode;size:32;index:idx_register_reward_claim,priority:3"` // 发奖决策模式:ISSUE_REWARD / QUOTA_EXHAUSTED Status string `gorm:"column:status;size:32"` // 处理状态 ErrorMessage string `gorm:"column:error_message;size:255"` // 失败原因 CreateTime time.Time `gorm:"column:create_time"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time"` // 更新时间 } // TableName 返回注册奖励日志表名。 func (ResidentRegisterRewardLog) TableName() string { return "resident_register_reward_log" }