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"` 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"` SortOrder *int `json:"sort_order"` } type CreateProductRequest struct { Name string `json:"name" binding:"required"` Description string `json:"description"` Price float64 `json:"price" binding:"required"` 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"` 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"` }