first commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package mysqlmodel
|
||||
|
||||
type Quota struct {
|
||||
Model
|
||||
UserID int64 `gorm:"column:user_id;uniqueIndex:uk_user_quota,priority:1"` // 用户ID
|
||||
QuotaType int8 `gorm:"column:quota_type;uniqueIndex:uk_user_quota,priority:2"` // 1=cos 2=AI 3=社区分享 4=衣柜分享
|
||||
Total int64 `gorm:"column:total"` // 免费额度底值(仅 Cos 永久额度使用;AI/社区/衣柜 每日额度不再落库)
|
||||
Used int64 `gorm:"column:used"` // 免费额度已用(仅 Cos 使用,永久累计)
|
||||
}
|
||||
|
||||
func (Quota) TableName() string {
|
||||
return "user_quotas"
|
||||
}
|
||||
|
||||
// QuotaGrant 有有效期额度凭证(会员包/加量包/广告激励)。
|
||||
// AI/社区/衣柜 每日额度场景 Amount 表示「有效期内每天额外赠送次数」,Used 恒为 0;
|
||||
// Cos 永久额度场景 Amount/Used 表示「一次性赠送库存及其已用」。
|
||||
type QuotaGrant struct {
|
||||
Model
|
||||
UserID int64 `gorm:"column:user_id;index:idx_grant_user_type_expire,priority:1"` // 用户ID
|
||||
QuotaType int8 `gorm:"column:quota_type;index:idx_grant_user_type_expire,priority:2;uniqueIndex:uk_grant_ref_type,priority:2"` // 额度类型 1=cos 2=AI 3=社区分享 4=衣柜分享
|
||||
Amount int64 `gorm:"column:amount"` // 赠送总量
|
||||
Used int64 `gorm:"column:used"` // 已用量(仅 Cos 扣减)
|
||||
Source int8 `gorm:"column:source"` // 来源 1=会员包 2=加量包 3=广告激励
|
||||
ExpireTime int64 `gorm:"column:expire_time;index:idx_grant_user_type_expire,priority:3"` // 到期时间(秒,0 表示跟随 VIP)
|
||||
RefID string `gorm:"column:ref_id;uniqueIndex:uk_grant_ref_type,priority:1"` // 关联ID(订单号/广告记录ID)
|
||||
}
|
||||
|
||||
func (QuotaGrant) TableName() string {
|
||||
return "quota_grants"
|
||||
}
|
||||
|
||||
type UserDailyUsage struct {
|
||||
Model
|
||||
// UserID 用户ID;与 StatDate 组成联合唯一索引,保证每日每用户仅一行。
|
||||
UserID int64 `gorm:"column:user_id;uniqueIndex:uk_daily_usage_user_date,priority:1"`
|
||||
StatDate int64 `gorm:"column:stat_date;uniqueIndex:uk_daily_usage_user_date,priority:2"` // 统计日期(YYYYMMDD)
|
||||
AIRecommendCount int64 `gorm:"column:ai_recommend_count"` // 当日AI推荐次数
|
||||
OutfitShareCount int64 `gorm:"column:outfit_share_count"` // 当日社区分享次数
|
||||
ClosetShareCount int64 `gorm:"column:closet_share_count"` // 当日衣柜分享次数
|
||||
}
|
||||
|
||||
func (UserDailyUsage) TableName() string {
|
||||
return "user_daily_usages"
|
||||
}
|
||||
Reference in New Issue
Block a user