package model import "time" const ( ListingCollectionKindHistory = "history" ListingCollectionKindFavorite = "favorite" ) // ListingCollection 记录用户对商品的浏览足迹或收藏关系。 // 同一用户 + 商品 + 类型唯一,重复浏览只更新时间,不新增行。 type ListingCollection struct { ID uint64 `gorm:"primaryKey" json:"id"` UserID uint64 `gorm:"not null;uniqueIndex:uk_listing_collections_user_listing_kind,priority:1;index:idx_listing_collections_user_kind_time,priority:1" json:"user_id"` ListingID uint64 `gorm:"not null;uniqueIndex:uk_listing_collections_user_listing_kind,priority:2;index:idx_listing_collections_user_kind_time,priority:3;index:idx_listing_collections_listing" json:"listing_id"` Kind string `gorm:"size:16;not null;uniqueIndex:uk_listing_collections_user_listing_kind,priority:3;index:idx_listing_collections_user_kind_time,priority:2" json:"kind"` OccurredAt time.Time `gorm:"not null;index:idx_listing_collections_user_kind_time,priority:4" json:"occurred_at"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } func (ListingCollection) TableName() string { return "listing_collections" }