first commit

This commit is contained in:
2026-09-11 01:47:20 +08:00
commit 303207d3cc
74 changed files with 8348 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
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=下架
}