package commit import "time" type Commit[H any] struct { Id int64 `gorm:"column:id;type:BIGINT(20);AUTO_INCREMENT;NOT NULL;comment:id;primary_key;comment:主键ID;"` UUID string `gorm:"size:36;not null;column:uuid;comment:uuid;uniqueIndex:uuid;"` Target string `gorm:"column:target;type:varchar(36);NOT NULL;comment:目标id;index:target;"` Key string `gorm:"size:50;not null;column:key;comment:类型;index:key;"` Data *H `gorm:"type:longtext;not null;column:data;comment:数据;charset=utf8mb4;serializer:json"` CreateAt time.Time `gorm:"type:timestamp;NOT NULL;DEFAULT:CURRENT_TIMESTAMP;column:create_at;comment:创建时间"` Operator string `gorm:"size:36;not null;column:operator;comment:操作人;index:operator;"` } type Latest struct { Id int64 `gorm:"column:id;type:BIGINT(20);AUTO_INCREMENT;NOT NULL;comment:id;primary_key;comment:主键ID;"` Target string `gorm:"column:target;type:varchar(36);NOT NULL;comment:目标id;index:target;uniqueIndex:target_type;"` Key string `gorm:"size:50;not null;column:key;comment:类型;index:key;uniqueIndex:target_type;"` Latest string `gorm:"size:36;not null;column:latest;comment:最新版本 id"` }