33 lines
1.8 KiB
Go
33 lines
1.8 KiB
Go
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;uniqueIndex:uniq_smoke_ai_next_node,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下次抽烟时间节点"
|
||
}
|