package model type ProductInList struct { ProductID uint `gorm:"column:product_id" json:"product_id" form:"product_id"` Name string `gorm:"column:name" json:"name" form:"name"` LinkRewrite string `gorm:"column:link_rewrite" json:"link_rewrite"` ImageLink string `gorm:"column:image_link" json:"image_link"` CategoryName string `gorm:"column:category_name" json:"category_name" form:"category_name"` Reference string `gorm:"column:reference" json:"reference"` VariantsNumber uint `gorm:"column:variants_number" json:"variants_number"` Quantity int64 `gorm:"column:quantity" json:"quantity"` PriceTaxExcl float64 `gorm:"column:price_tax_excl" json:"price_tax_excl"` PriceTaxIncl float64 `gorm:"column:price_tax_incl" json:"price_tax_incl"` IsFavorite bool `gorm:"column:is_favorite" json:"is_favorite"` IsNew bool `gorm:"column:is_new" json:"is_new"` IsOEM bool `gorm:"column:is_oem" json:"is_oem"` } type ProductFilters struct { Sort string `json:"sort,omitempty" query:"sort,omitempty" example:"price,asc;name,desc"` // sort rule ProductID uint `json:"product_id,omitempty" query:"product_id,omitempty" example:"1"` Price float64 `json:"price,omitempty" query:"price,omitempty" example:"123.45"` Name string `json:"name,omitempty" query:"name,omitempty" example:"Sztabka Złota Britannia"` CategoryID uint `json:"category_id,omitempty" query:"category_id,omitempty" example:"2"` CategoryName string `json:"category_name,omitempty" query:"category_name,omitempty" example:"Złote Monety"` Features FeatVal `query:"features,omitempty"` ActiveSale bool `query:"sale_active,omitempty"` InStock uint `query:"stock,omitempty"` } type FeatVal = map[uint][]uint type B2bFavorite struct { UserID uint `gorm:"column:user_id;not null;primaryKey" json:"user_id"` ProductID uint `gorm:"column:product_id;not null;primaryKey" json:"product_id"` } func (*B2bFavorite) TableName() string { return "b2b_favorites" }