package dto // GoodsListRequest 商品列表请求。 type GoodsListRequest struct { PageRequest GoodsType int8 `form:"goods_type" binding:"omitempty,oneof=1 2 3 4 5"` Status int8 `form:"status" binding:"omitempty,oneof=1 2"` // 1=上架 2=下架;不传=全部 Keyword string `form:"keyword"` } // GoodsItem 商品信息。 type GoodsItem struct { ID int64 `json:"id"` GoodsCode string `json:"goods_code"` GoodsName string `json:"goods_name"` GoodsType int8 `json:"goods_type"` // 1=会员包 2=上传包 3=AI 推荐包 4=衣柜分享包 5=搭配分享包 Price int64 `json:"price"` // 原价(分) DiscountPrice int64 `json:"discount_price"` MemberDays int64 `json:"member_days"` UploadQuota int64 `json:"upload_quota"` // 上传额度(对应业务表 cos_quota) AIRecommendQuota int64 `json:"ai_recommend_quota"` // AI 推荐额度 ClosetShareQuota int64 `json:"closet_share_quota"` // 衣柜分享额度 OutfitShareQuota int64 `json:"outfit_share_quota"` // 搭配分享额度 ValidDays int64 `json:"valid_days"` // 赠送额度有效期天数(加量包;会员包 0=跟随 VIP) Description string `json:"description"` Status int8 `json:"status"` // 1=上架 2=下架 ProductID string `json:"product_id"` // 虚拟支付道具ID(只读,空=未发布) ProductStatus int8 `json:"product_status"` // 虚拟支付道具发布状态 0=未发布 1=发布中 2=已发布 3=发布失败(只读) CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } // GoodsListResponse 商品列表响应。 type GoodsListResponse struct { PageResponse List []GoodsItem `json:"list"` } // GoodsCreateRequest 创建商品请求。 type GoodsCreateRequest struct { GoodsCode string `json:"goods_code" binding:"required,max=64"` GoodsName string `json:"goods_name" binding:"required,max=64"` GoodsType int8 `json:"goods_type" binding:"required,oneof=1 2 3 4 5"` Price int64 `json:"price" binding:"required,min=0,max=100000000"` DiscountPrice int64 `json:"discount_price" binding:"required,min=0,max=100000000"` MemberDays int64 `json:"member_days" binding:"omitempty,min=0"` UploadQuota int64 `json:"upload_quota" binding:"omitempty,min=0"` AIRecommendQuota int64 `json:"ai_recommend_quota" binding:"omitempty,min=0"` ClosetShareQuota int64 `json:"closet_share_quota" binding:"omitempty,min=0"` OutfitShareQuota int64 `json:"outfit_share_quota" binding:"omitempty,min=0"` ValidDays int64 `json:"valid_days" binding:"omitempty,min=0,max=3650"` Description string `json:"description" binding:"omitempty,max=500"` Status int8 `json:"status" binding:"omitempty,oneof=1 2"` } // GoodsUpdateRequest 更新商品请求(传什么改什么)。 type GoodsUpdateRequest struct { GoodsName *string `json:"goods_name" binding:"omitempty,max=64"` Price *int64 `json:"price" binding:"omitempty,min=0,max=100000000"` DiscountPrice *int64 `json:"discount_price" binding:"omitempty,min=0,max=100000000"` MemberDays *int64 `json:"member_days" binding:"omitempty,min=0"` UploadQuota *int64 `json:"upload_quota" binding:"omitempty,min=0"` AIRecommendQuota *int64 `json:"ai_recommend_quota" binding:"omitempty,min=0"` ClosetShareQuota *int64 `json:"closet_share_quota" binding:"omitempty,min=0"` OutfitShareQuota *int64 `json:"outfit_share_quota" binding:"omitempty,min=0"` ValidDays *int64 `json:"valid_days" binding:"omitempty,min=0,max=3650"` Description *string `json:"description" binding:"omitempty,max=500"` } // GoodsStatusRequest 商品上下架请求。 type GoodsStatusRequest struct { Status int8 `json:"status" binding:"required,oneof=1 2"` // 1=上架 2=下架 }