Files
sale/backend/internal/schemas/product.go
T
admin b26fea9621
Build and Push Docker Image / build-and-push (push) Successful in 1m0s
Build and Push Docker Image / deploy (push) Successful in 8s
Docker Build / Build and Push Docker Image (push) Has been cancelled
Docker Build / Deploy to Server (push) Has been cancelled
feat: 分类管理添加是否可跨分类购物选项
2026-07-05 20:18:27 +08:00

90 lines
3.8 KiB
Go

package schemas
type CreateCategoryRequest struct {
Name string `json:"name" binding:"required"`
Description string `json:"description"`
ParentID *uint `json:"parent_id"`
MinAmount *float64 `json:"min_amount"`
MaxAmount *float64 `json:"max_amount"`
MinQuantity *int `json:"min_quantity"`
MaxQuantity *int `json:"max_quantity"`
MinWeight *float64 `json:"min_weight"`
MaxWeight *float64 `json:"max_weight"`
AllowCrossCategory *bool `json:"allow_cross_category"`
SortOrder int `json:"sort_order"`
}
type UpdateCategoryRequest struct {
Name *string `json:"name"`
Description *string `json:"description"`
ParentID *uint `json:"parent_id"`
MinAmount *float64 `json:"min_amount"`
MaxAmount *float64 `json:"max_amount"`
MinQuantity *int `json:"min_quantity"`
MaxQuantity *int `json:"max_quantity"`
MinWeight *float64 `json:"min_weight"`
MaxWeight *float64 `json:"max_weight"`
AllowCrossCategory *bool `json:"allow_cross_category"`
SortOrder *int `json:"sort_order"`
}
type CreateProductRequest struct {
Name string `json:"name" binding:"required"`
Description string `json:"description"`
Price float64 `json:"price" binding:"gte=0"`
Weight float64 `json:"weight"`
MinPurchase int `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 `json:"require_credit"`
CreditCost int `json:"credit_cost"`
CreditReward int `json:"credit_reward"`
Images string `json:"images"`
BrandID *uint `json:"brand_id"`
CategoryIDs []uint `json:"category_ids"`
CustomFields []CustomFieldRequest `json:"custom_fields"`
}
type UpdateProductRequest struct {
Name *string `json:"name"`
Description *string `json:"description"`
Price *float64 `json:"price"`
Weight *float64 `json:"weight"`
MinPurchase *int `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 `json:"require_credit"`
CreditCost *int `json:"credit_cost"`
CreditReward *int `json:"credit_reward"`
Images *string `json:"images"`
IsActive *bool `json:"is_active"`
BrandID *uint `json:"brand_id"`
CategoryIDs []uint `json:"category_ids"`
CustomFields []CustomFieldRequest `json:"custom_fields"`
}
type CustomFieldRequest struct {
FieldName string `json:"field_name" binding:"required"`
FieldValue string `json:"field_value"`
}
type PaginationRequest struct {
Page int `form:"page,default=1"`
PageSize int `form:"page_size,default=20"`
}
type ProductListRequest struct {
PaginationRequest
CategoryID *uint `form:"category_id"`
BrandID *uint `form:"brand_id"`
Keyword string `form:"keyword"`
MinPrice *float64 `form:"min_price"`
MaxPrice *float64 `form:"max_price"`
}