package model import "database/sql" // BrandRunwayImage 走秀图片。 type BrandRunwayImage struct { ID uint32 `gorm:"primaryKey;column:id" json:"id"` CreatedAt uint32 `gorm:"column:created_at" json:"created_at"` UpdatedAt uint32 `gorm:"column:updated_at" json:"updated_at"` IsDeleted uint8 `gorm:"column:is_deleted" json:"is_deleted"` Image string `gorm:"column:image" json:"image"` RunwayID uint32 `gorm:"column:runway_id" json:"runway_id"` BrandID uint32 `gorm:"column:brand_id" json:"brand_id"` Name string `gorm:"column:name" json:"name"` SortOrder uint32 `gorm:"column:sort_order" json:"sort_order"` // 拖拽排序用,由迁移脚本新增 LookIndex uint32 `gorm:"column:look_index" json:"look_index"` // 细节图归属的主图序号(主图=该 look;细节图=所属主图的 look) IsDetail uint8 `gorm:"column:is_detail" json:"is_detail"` // 0=主图/look 图(默认展示) 1=细节图 // 去重字段(近重复 + 语义 embedding 留痕): // phash 为 dHash 的 pgvector 二进制向量(vector(64)),NULL 表示无法解码(如 webp),不参与检索; // is_duplicate / dup_of 仅在命中近重复时标记,供人工审核留痕,不阻断入库。 Phash sql.NullString `gorm:"column:phash;type:vector(64)" json:"phash"` IsDuplicate uint8 `gorm:"column:is_duplicate;not null;default:0" json:"is_duplicate"` DupOf string `gorm:"column:dup_of;type:varchar(32);not null;default:''" json:"dup_of"` } // TableName 指定表名。 func (BrandRunwayImage) TableName() string { return "brand_runway_images" }