package model import "time" // SmokeAIAdvice 对应表 fa_smoke_ai_advice(每日 AI 戒烟建议缓存)。 // // 注意:沿用旧系统字段(createtime/updatetime/deletetime 为秒级时间戳),不使用 gorm.Model。 type SmokeAIAdvice struct { ID uint `gorm:"primaryKey;autoIncrement" json:"id"` UID int `gorm:"column:uid;index:idx_smoke_ai_advice_uid_date,priority:1;uniqueIndex:uniq_smoke_ai_advice,priority:1" json:"-"` AdviceDate time.Time `gorm:"column:advice_date;type:date;index:idx_smoke_ai_advice_uid_date,priority:2;uniqueIndex:uniq_smoke_ai_advice,priority:2" json:"advice_date"` PromptVersion string `gorm:"column:prompt_version;size:30;default:v1;uniqueIndex:uniq_smoke_ai_advice,priority:3" json:"prompt_version"` Provider string `gorm:"column:provider;size:30" json:"provider,omitempty"` Model string `gorm:"column:model;size:60" json:"model,omitempty"` InputSnapshot []byte `gorm:"column:input_snapshot;type:json" json:"input_snapshot,omitempty"` Advice string `gorm:"column:advice;type:mediumtext" json:"advice"` TokensIn *int `gorm:"column:tokens_in" json:"tokens_in,omitempty"` TokensOut *int `gorm:"column:tokens_out" json:"tokens_out,omitempty"` CostCent *int `gorm:"column:cost_cent" json:"cost_cent,omitempty"` CreateTime *int64 `gorm:"column:createtime" json:"createtime,omitempty"` UpdateTime *int64 `gorm:"column:updatetime" json:"updatetime,omitempty"` DeleteTime *int64 `gorm:"column:deletetime" json:"deletetime,omitempty"` } func (SmokeAIAdvice) TableName() string { return "fa_smoke_ai_advice" } // SmokeAIAdviceUnlock 对应表 fa_smoke_ai_advice_unlocks(非会员用户的每日广告解锁记录)。 type SmokeAIAdviceUnlock struct { ID uint `gorm:"primaryKey;autoIncrement" json:"id"` UID int `gorm:"column:uid;index:idx_smoke_ai_unlock_uid_date,priority:1;uniqueIndex:uniq_smoke_ai_unlock,priority:1" json:"-"` UnlockDate time.Time `gorm:"column:unlock_date;type:date;index:idx_smoke_ai_unlock_uid_date,priority:2;uniqueIndex:uniq_smoke_ai_unlock,priority:2" json:"unlock_date"` AdWatchedAt time.Time `gorm:"column:ad_watched_at" json:"ad_watched_at"` CreateTime *int64 `gorm:"column:createtime" json:"createtime,omitempty"` UpdateTime *int64 `gorm:"column:updatetime" json:"updatetime,omitempty"` DeleteTime *int64 `gorm:"column:deletetime" json:"deletetime,omitempty"` } func (SmokeAIAdviceUnlock) TableName() string { return "fa_smoke_ai_advice_unlocks" }