go-importer/gorm_models/product.go

83 lines
2.1 KiB
Go
Raw Normal View History

2022-08-12 08:59:03 +00:00
package gorm_models
import "time"
type Product struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
Sku string
Type string
ParentID uint `sql:"DEFAULT:NULL"`
AttributeFamilyID uint
AttributeFamily AttributeFamily
BrandID uint `sql:"DEFAULT:NULL"`
Brand Brand
Images []ProductImage
Categories []Category `gorm:"many2many:product_categories;"`
AttributeValues []ProductAttributeValue
2022-08-15 05:15:49 +00:00
SuperAttributes []Attribute `gorm:"many2many:product_super_attributes;"`
2022-08-12 08:59:03 +00:00
}
// $main_attributes = [
//
// 'sku' => $parentProduct->sku,
// 'product_number' => $data['product_number'],
// 'name' => $data['name'],
// 'weight' => $data['weight'] ?? 0.45,
// 'source' => $data['url_key'],
// 'status' => 1,
// 'visible_individually' => 1,
// 'url_key' => $parentProduct->sku,
// 'short_description' => $desc,
// 'description' => $desc,
// 'favoritesCount' => $data['favorite_count']
//
// ];
type ProductFlat struct {
ID uint `gorm:"primary_key"`
Sku string
ProductNumber string
Name string
Weight float64 `gorm:"type:decimal(12,4)"`
Status bool
Source string
VisibleIndividually bool
UrlKey string
ShortDescription string
Description string
FavoritesCount uint
CreatedAt time.Time
UpdatedAt time.Time
2022-08-15 05:15:49 +00:00
ProductID uint
2022-08-12 08:59:03 +00:00
Product Product
2022-08-15 05:15:49 +00:00
Channel string `sql:"DEFAULT:default"`
Locale string `sql:"DEFAULT:tm"`
ParentID uint `sql:"DEFAULT:NULL"`
BrandID uint
2022-08-12 08:59:03 +00:00
}
type ProductImage struct {
ID uint `gorm:"primary_key"`
Type string
Path string
ProductID uint
}
type ProductAttributeValue struct {
ID uint `gorm:"primary_key"`
Locale string
Channel string
ProductID uint
AttributeID uint
TextValue string
BooleanValue bool
IntegerValue int
FloatValue float64 `gorm:"type:decimal(12,4)"`
}
type ProductSuperAttribute struct {
ProductID uint
AttributeID uint
}