package model import "time" // SmokeAINextSmoke 对应表 fa_smoke_ai_next_smoke(AI 生成的“下次抽烟时间节点”)。 // // 说明: // - 该表只保存“时间节点”本身(每个时间点一条记录),AI 元信息复用 fa_smoke_ai_advice(通过 AIAdviceID 关联)。 // - 沿用旧系统字段(createtime/updatetime/deletetime 为秒级时间戳),不使用 gorm.Model。 type SmokeAINextSmoke struct { ID uint `gorm:"primaryKey;autoIncrement;comment:记录ID" json:"id"` UID int `gorm:"column:uid;index:idx_smoke_ai_next_uid_date,priority:1;comment:用户ID" json:"-"` PlanDate time.Time `gorm:"column:plan_date;type:date;index:idx_smoke_ai_next_uid_date,priority:2;comment:计划日期(当天)" json:"plan_date"` AIAdviceID uint `gorm:"column:ai_advice_id;index:idx_smoke_ai_next_advice,priority:1;comment:关联AI建议ID(fa_smoke_ai_advice.id)" json:"ai_advice_id"` // NodeType: not_before / suggested / node NodeType string `gorm:"column:node_type;size:20;index:idx_smoke_ai_next_advice,priority:2;uniqueIndex:uniq_smoke_ai_next_node,priority:2;comment:节点类型" json:"node_type"` NodeAt time.Time `gorm:"column:node_at;type:datetime;uniqueIndex:uniq_smoke_ai_next_node,priority:3;comment:时间点" json:"node_at"` CreateTime *int64 `gorm:"column:createtime;comment:创建时间(秒)" json:"createtime,omitempty"` UpdateTime *int64 `gorm:"column:updatetime;comment:更新时间(秒)" json:"updatetime,omitempty"` DeleteTime *int64 `gorm:"column:deletetime;comment:删除时间(秒)" json:"deletetime,omitempty"` } func (SmokeAINextSmoke) TableName() string { return "fa_smoke_ai_next_smoke" } func (SmokeAINextSmoke) TableComment() string { return "AI下次抽烟时间节点" }