bpiek/model/product.go
Pavel Sinitsin e14d4b188b
Add new API and client modules for category and product management
This commit introduces new API and client modules that provide functionality for managing categories and products. It includes the creation of `.gitignore`, necessary data models, API endpoints, and client authentication using go-resty. This forms the foundation for further enhancements to the category and product management features.
2024-09-07 19:14:29 +03:00

165 lines
5.4 KiB
Go

package model
type VideosType string
type WarehouseDataIncomingType string
const (
VideoTypeFile VideosType = "file"
VideoTypeUrl VideosType = "url"
)
const (
WarehouseDataIncomingTypeShipping WarehouseDataIncomingType = "shipping"
WarehouseDataIncomingTypeProduction WarehouseDataIncomingType = "production"
)
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 interface{} `json:"lifespan"`
Warranty interface{} `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 VideosType `json:"type"`
}
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 WarehouseDataIncomingType `json:"type"`
}
}
Etim struct {
Features []struct {
Id string `json:"id"`
Name string `json:"name"`
Sort int `json:"sort"`
Unit string `json:"unit"`
Value string `json:"value"`
} `json:"features"`
Class struct {
Id string `json:"id"`
Name string `json:"name"`
} `json:"class"`
}
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"`
}
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 int `json:"priceBase"`
PriceRrc int `json:"priceRrc"`
Available int `json:"available"`
Units string `json:"units"`
WarehouseData []WarehouseData `json:"warehouseData"`
}
Product struct {
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"`
Advantages string `json:"advantages"`
Etim Etim `json:"etim"`
Complects []Complects `json:"complects"`
Complectations string `json:"complectations"`
Files []interface{} `json:"files"`
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"`
Family string `json:"family"`
Series string `json:"series"`
IndPacking []string `json:"indPacking"`
Analogs []Analog `json:"analogs"`
Related []Analog `json:"related"`
QrCode string `json:"qrCode"`
IsOutOfAssortment bool `json:"isOutOfAssortment"`
IsOutOfProduction bool `json:"isOutOfProduction"`
}
)