40 lines
2.0 KiB
Go
40 lines
2.0 KiB
Go
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 uint `gorm:"column:is_new" json:"is_new"`
|
|
}
|
|
|
|
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"
|
|
}
|