2026-07-16 01:47:11 +00:00
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
type Product struct {
|
2026-07-22 07:23:40 +00:00
|
|
|
Brand string `json:"brand"`
|
|
|
|
|
GroupName string `json:"group_name"`
|
|
|
|
|
SKU string `json:"sku"`
|
|
|
|
|
SeriesName string `json:"series_name"`
|
|
|
|
|
StyleName string `json:"style_name"`
|
|
|
|
|
Category string `json:"category"`
|
|
|
|
|
Material string `json:"material"`
|
|
|
|
|
ColorTone string `json:"color_tone"`
|
|
|
|
|
Finish string `json:"finish"`
|
|
|
|
|
PricePerSqft float64 `json:"price_per_sqft"`
|
|
|
|
|
PriceTier string `json:"price_tier"`
|
|
|
|
|
PriceSource string `json:"price_source"`
|
|
|
|
|
IsOfficialPrice bool `json:"is_official_price"`
|
|
|
|
|
MainImageURL string `json:"main_image_url"`
|
|
|
|
|
RoomImageURL string `json:"room_image_url"`
|
|
|
|
|
SourceURL string `json:"source_url"`
|
|
|
|
|
Description string `json:"description"`
|
|
|
|
|
Status string `json:"status"`
|
|
|
|
|
CoverageSqftPerBox float64 `json:"coverage_sqft_per_box"`
|
|
|
|
|
WoodSpecies string `json:"wood_species"`
|
|
|
|
|
SizeLabel string `json:"size_label"`
|
|
|
|
|
WidthIn float64 `json:"width_in"`
|
|
|
|
|
LengthIn float64 `json:"length_in"`
|
|
|
|
|
Variants []Product `json:"variants,omitempty"`
|
|
|
|
|
Specs []ProductSpec `json:"specs,omitempty"`
|
|
|
|
|
IsFavorited bool `json:"is_favorited"`
|
2026-07-16 01:47:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ProductSpec is a single size/price variant of a product style.
|
|
|
|
|
type ProductSpec struct {
|
|
|
|
|
SKU string `json:"sku"`
|
|
|
|
|
SizeLabel string `json:"size_label"`
|
|
|
|
|
WidthIn float64 `json:"width_in"`
|
|
|
|
|
LengthIn float64 `json:"length_in"`
|
|
|
|
|
Finish string `json:"finish"`
|
|
|
|
|
PricePerSqft float64 `json:"price_per_sqft"`
|
|
|
|
|
PriceTier string `json:"price_tier"`
|
|
|
|
|
CoverageSqftPerBox float64 `json:"coverage_sqft_per_box"`
|
|
|
|
|
MainImageURL string `json:"main_image_url"`
|
|
|
|
|
}
|