Files
zt-closet-manage-backend/internal/dto/content.go
T
2026-09-11 01:47:20 +08:00

128 lines
4.4 KiB
Go

package dto
// OutfitListRequest 穿搭列表请求。
type OutfitListRequest struct {
PageRequest
UserID int64 `form:"user_id"`
IsPublic int8 `form:"is_public" binding:"omitempty,oneof=1 2"`
AuditStatus int8 `form:"audit_status" binding:"omitempty,oneof=1 2 3"`
Status int8 `form:"status" binding:"omitempty,oneof=1 2 3"`
Keyword string `form:"keyword"`
}
// OutfitListItem 穿搭列表项。
type OutfitListItem struct {
ID int64 `json:"id"`
OutfitUUID string `json:"outfit_uuid"`
UserID int64 `json:"user_id"`
OutfitName string `json:"outfit_name"`
OutfitDesc string `json:"outfit_desc"`
Scene string `json:"scene"`
Source int8 `json:"source"` // 1=用户创建 2=AI 推荐
IsPublic int8 `json:"is_public"` // 1=不公开 2=公开
AuditStatus int8 `json:"audit_status"` // 1=待审核 2=审核通过 3=审核不通过
Status int8 `json:"status"` // 1=正常 2=封禁 3=待用户保存
CreatedAt int64 `json:"created_at"`
}
// OutfitListResponse 穿搭列表响应。
type OutfitListResponse struct {
PageResponse
List []OutfitListItem `json:"list"`
}
// OutfitClothesItem 穿搭衣物明细项。
type OutfitClothesItem struct {
ClothesUUID string `json:"clothes_uuid"`
Name string `json:"name"`
CategoryMain string `json:"category_main"`
CategorySub string `json:"category_sub"`
ProcessedImage string `json:"processed_image"`
ImageProcessStatus int8 `json:"image_process_status"`
}
// OutfitDetailResponse 穿搭详情响应。
type OutfitDetailResponse struct {
OutfitListItem
Items []OutfitClothesItem `json:"items"`
}
// OutfitAuditRequest 穿搭审核请求。
type OutfitAuditRequest struct {
Result int8 `json:"result" binding:"required,oneof=1 2"` // 1=通过 2=驳回
Reason string `json:"reason" binding:"omitempty,max=200"` // 驳回原因(result=2 时建议填写)
}
// OutfitBanRequest 穿搭封禁/解封请求。
type OutfitBanRequest struct {
Reason string `json:"reason" binding:"omitempty,max=200"`
}
// ClothesListRequest 衣物列表请求。
type ClothesListRequest struct {
PageRequest
UserID int64 `form:"user_id"`
ImageProcessStatus int8 `form:"image_process_status" binding:"omitempty,oneof=1 2 3 4 5"`
CategoryMain string `form:"category_main"`
Keyword string `form:"keyword"`
}
// ClothesItem 衣物信息。
type ClothesItem struct {
ID int64 `json:"id"`
ClothesUUID string `json:"clothes_uuid"`
UserID int64 `json:"user_id"`
Name string `json:"name"`
CategoryMain string `json:"category_main"`
CategorySub string `json:"category_sub"`
Style string `json:"style"`
ColorMain string `json:"color_main"`
ColorSub string `json:"color_sub"`
Thickness string `json:"thickness"`
Version string `json:"version"`
Material string `json:"material"`
Pattern string `json:"pattern"`
SleeveType string `json:"sleeve_type"`
ClothesType string `json:"clothes_type"`
NecklineType string `json:"neckline_type"`
Formality string `json:"formality"`
Occasions string `json:"occasions"`
VisualImpact string `json:"visual_impact"`
Remark string `json:"remark"`
ProcessedImage string `json:"processed_image"`
ImageSize int64 `json:"image_size"`
ImageProcessStatus int8 `json:"image_process_status"`
FailReason string `json:"fail_reason"`
CreatedAt int64 `json:"created_at"`
}
// ClothesListResponse 衣物列表响应。
type ClothesListResponse struct {
PageResponse
List []ClothesItem `json:"list"`
}
// ClosetShareListRequest 衣柜分享列表请求。
type ClosetShareListRequest struct {
PageRequest
UserID int64 `form:"user_id"`
Status int8 `form:"status" binding:"omitempty,oneof=1 2 3 4"`
}
// ClosetShareItem 衣柜分享信息。
type ClosetShareItem struct {
ID int64 `json:"id"`
ShareUUID string `json:"share_uuid"`
UserID int64 `json:"user_id"`
ShareType int8 `json:"share_type"` // 1=部分衣物分享 2=全量快照分享
ExpireTime int64 `json:"expire_time"`
Status int8 `json:"status"` // 1=正常 2=已取消 3=已过期 4=已封禁
CreatedAt int64 `json:"created_at"`
}
// ClosetShareListResponse 衣柜分享列表响应。
type ClosetShareListResponse struct {
PageResponse
List []ClosetShareItem `json:"list"`
}