package model import ( "time" "gorm.io/gorm" "git.sundynix.cn/Blizzard/sundynix-site/server/internal/pkg/idgen" ) // BaseModel 所有表的公共字段:字符串雪花主键 + 时间戳。 // 列名由 GORM NamingStrategy 统一转 snake_case。 type BaseModel struct { ID string `gorm:"primaryKey;size:20" json:"id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } // BeforeCreate 主键为空时自动生成雪花 ID。 func (m *BaseModel) BeforeCreate(*gorm.DB) error { if m.ID == "" { m.ID = idgen.Next() } return nil }