bpiek/model/product.go
Pavel Sinitsin cea1f96bb4
Refactor credential handling and improve parsing logic
Deleted client/credential.go and moved the Credentials struct to the api package for better modularity. Enhanced type safety in api by checking type assertions and added detailed comments in model structs.
2024-09-08 13:50:05 +03:00

170 lines
11 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package model
type (
ImageVariant struct {
Url string `json:"url"` // Ссылка
Ext string `json:"ext"` // Расширение
Width int `json:"width"` // Ширина
}
Complects struct {
Article string `json:"article"` // Артикул
Name string `json:"name"` // Наименование
Quantity int `json:"quantity"` // Количество
}
LeftPeriod struct {
Name string `json:"name"` // Название характеристики
Value string `json:"value"` // Значение характеристики
}
LeftPeriodRaw struct {
Lifespan struct {
Limit string `json:"limit"` // Предельное значение
Value string `json:"value"` // Значение
Units string `json:"units"` // Единицы измерения
} `json:"lifespan"` // Срок службы
Warranty struct {
Value string `json:"value"` // Значение
Units string `json:"units"` // Единицы измерения
} `json:"warranty"` // Гарантийный срок
}
DesignFeatures struct {
ImageUrl string `json:"imageUrl"` // Ссылка на изображение
Description string `json:"description"` // Описание
}
Video struct {
Name string `json:"name"` // Наименование
Description string `json:"description"` // Описание
Url string `json:"url"` // Ссылка
Type string `json:"type"` // Тип (ссылка на видео-хостинг или прямая ссылка на скачивание); Enum: "url" "file"
}
Software struct {
Name string `json:"name"` // Наименование
Description string `json:"description"` // Описание
Url string `json:"url"` // Ссылка
Size int `json:"size"` // Размер
}
Analog struct {
Article string `json:"article"` // Артикул товара
Name string `json:"name"` // Полное название товара
ShortName string `json:"shortName"` // Краткое название
Description string `json:"description"` // Описание
ImageUrl string `json:"imageUrl"` // Фото товара (основное)
ImageUrls []string `json:"imageUrls"` // Все фото товара
ImageVariants []ImageVariant `json:"imageVariants"` // Вариации изображений
IsArchived bool `json:"isArchived"` // Архивный или нет
Tm string `json:"tm"` // Торговая марка
}
WarehouseData struct {
WarehouseId string `json:"warehouseId"` // Идентификатор склада
WarehouseName string `json:"warehouseName"` // Наименование склада
AvailableAmount int `json:"availableAmount"` // Доступное количество
Incoming []struct {
DateBegan string `json:"dateBegan"` // Дата начала периода поступления на склад
DateEnd string `json:"dateEnd"` // Дата окончания периода поступления на склад
Amount int `json:"amount"` // Ожидаемое количество
Type string `json:"type"` // Тип поступления, production - поступление после производства, shipping - доставка на склад
} // Ближайшие поступления
}
Etim struct {
Features []struct {
Id string `json:"id"` //
Name string `json:"name"` // Название свойства
Sort int `json:"sort"` // Порядок сортировки по умолчанию
Unit string `json:"unit"` // Единицы измерения
Value string `json:"value"` // Значение свойства
ValueUnion string `json:"value_union"` // Код значения
} `json:"features"` // Features represents a list of product features with detailed information.
Class struct {
Id string `json:"id"` //
Name string `json:"name"` // Название класса
} `json:"class"` // ETIM-класс товара
}
LogisticParams struct {
Name string `json:"name"` // Название параметра
NameOrig string `json:"nameOrig"` // Название характеристики (исходное)
Value struct {
Group string `json:"group"` // Значение для группового варианта
Individual string `json:"individual"` // Значение для индивидуального варианта
Transport string `json:"transport"` // Значение для транспортного варианта
} `json:"value"` // Value represents group, individual, and transport logistics values in JSON format.
}
LogisticParamsData struct {
SinglePackage struct {
Multiplicity int `json:"multiplicity"` // Кратность
Unit string `json:"unit"` // Единицы измерения
} `json:"singlePackage"` // Для индивидуальной упаковки
}
ShortProduct struct {
Article string `json:"article"` // Артикул товара
Name string `json:"name"` // Полное наименование товара
Multiplicity int `json:"multiplicity"` // Кратность продажи
PriceBase float64 `json:"priceBase"` // Базовая цена с НДС
PriceRrc float64 `json:"priceRrc"` // Рекомендованная розничная цена (РРЦ) с НДС
Available float64 `json:"available"` // Значение остатка
Units string `json:"units"` // Единицы измерения
WarehouseData []WarehouseData `json:"warehouseData"` // Информация по складам
}
Product struct {
Article string `json:"article"` // Артикул товара
Name string `json:"name"` // Полное наименование товара
ShortName string `json:"shortName"` // Краткое название
Description string `json:"description"` // Описание
CategoryName string `json:"categoryName"` // Название категории
Category string `json:"category"` // Относительный путь до категории в каталоге
Slug string `json:"slug"` // Слаг товара
Tm string `json:"tm"` // Торговая марка
Url string `json:"url"` // Ссылка на товар
IsArchived bool `json:"isArchived"` // Архивный или нет
ImageUrl string `json:"imageUrl"` // Фото товара (основное)
ImageUrls []string `json:"imageUrls"` // Все фото товара
ImageVariants []ImageVariant `json:"imageVariants"` // Вариации изображений
ImageUrlsVariants []interface{} `json:"imageUrlsVariants"` // Все вариации изображений
Advantages string `json:"advantages"` // Преимущества
Etim Etim `json:"etim"` // ETIM характеристики товара
Complects []Complects `json:"complects"` // Комплектация и сопутствующие товары
Complectations string `json:"complectations"` // Комплектация
Files []interface{} `json:"files"` // Список файлов, относящихся к товару (ГЧ, КД, CAD-модели и т.д.)
LeftPeriod []LeftPeriod `json:"leftPeriod"` // Характеристики срока службы
LeftPeriodRaw LeftPeriodRaw `json:"leftPeriodRaw"` // Гарантийные показатели
LogisticParams []LogisticParams `json:"logisticParams"` // Логистические характеристики
LogisticParamsData LogisticParamsData `json:"logisticParamsData"` // Подробные логистические характеристики
Novelty bool `json:"novelty"` // Новинка или нет
DesignFeatures []DesignFeatures `json:"designFeatures"` // Отличительные особенности
Videos []Video `json:"videos"` // Видео по товару
Software []Software `json:"software"` // ПО по товару
Banner string `json:"banner"` // Текст баннера
LastModified string `json:"lastModified"` // Дата последнего изменения
CountryOfProduction string `json:"countryOfProduction"` // Страна производства
FirstSaleDate string `json:"firstSaleDate"` // Дата начала продаж
Feacn string `json:"feacn"` // Код ТН ВЭД
Multiplicity int `json:"multiplicity"` // Кратность продажи
PriceBase float64 `json:"priceBase"` // Базовая цена с НДС
PriceRrc float64 `json:"priceRrc"` // Персональная цена с НДС
PricePersonal float64 `json:"pricePersonal"` // Рекомендованная розничная цена (РРЦ) с НДС
Available int `json:"available"` // Значение остатка
Units string `json:"units"` // Единицы измерения
Family string `json:"family"` // Family specifies the family category of the product.
Series string `json:"series"` // Series is the series of the product.
IndPacking []string `json:"indPacking"` // Ссылки на фото упаковки
Analogs []Analog `json:"analogs"` // Аналоги
Related []Analog `json:"related"` // Совместно применяемые изделия
QrCode string `json:"qrCode"` // QR код со ссылкой на товар в Бизнес платформе
IsOutOfAssortment bool `json:"isOutOfAssortment"` // Выведенный из ассортимента
IsOutOfProduction bool `json:"isOutOfProduction"` // Выводимый из ассортимента
WarehouseData []WarehouseData `json:"warehouseData"` // Информация по складам
}
)