Initial commit: 商品售卖网站
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Product struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
Name string `gorm:"size:255;not null" json:"name"`
|
||||
Description string `json:"description"`
|
||||
Price float64 `gorm:"type:decimal(10,2);not null" json:"price"`
|
||||
MinPurchase int `gorm:"default:1" json:"min_purchase"`
|
||||
MaxPurchase *int `json:"max_purchase"`
|
||||
MinWeight *float64 `json:"min_weight"`
|
||||
MaxWeight *float64 `json:"max_weight"`
|
||||
MinAmount *float64 `json:"min_amount"`
|
||||
MaxAmount *float64 `json:"max_amount"`
|
||||
RequireCredit bool `gorm:"default:false" json:"require_credit"`
|
||||
CreditCost int `gorm:"default:0" json:"credit_cost"`
|
||||
CreditReward int `gorm:"default:0" json:"credit_reward"`
|
||||
Images string `gorm:"type:text" json:"images"`
|
||||
IsActive bool `gorm:"default:true" json:"is_active"`
|
||||
BrandID *uint `json:"brand_id"`
|
||||
Brand *Brand `json:"brand,omitempty"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
||||
Categories []Category `gorm:"many2many:product_categories;" json:"categories,omitempty"`
|
||||
CustomFields []ProductCustomField `json:"custom_fields,omitempty"`
|
||||
}
|
||||
|
||||
func (Product) TableName() string {
|
||||
return "products"
|
||||
}
|
||||
|
||||
type ProductCustomField struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
ProductID uint `gorm:"index;not null" json:"product_id"`
|
||||
FieldName string `gorm:"size:100;not null" json:"field_name"`
|
||||
FieldValue string `json:"field_value"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
func (ProductCustomField) TableName() string {
|
||||
return "product_custom_fields"
|
||||
}
|
||||
Reference in New Issue
Block a user