Files
zt-closet-wxmini-frontend/miniprogram/types/models.ts
T

245 lines
6.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 后端实体类型定义(对照 接口文档.md)
export interface UserInfo {
username: string
avatar: string
sex: number // 0 未知 1 男 2 女
birth_day: number // 秒级时间戳,0 未设置
phone: string
is_new_user: boolean
status: number // 1 正常 2 临时禁用 3 永久禁用 4 已注销
ban_reason: string
ban_start: number
ban_expire: number
vip_type: number // 1 非会员 2 月度会员 3 年度会员 4 体验会员
vip_expire: number
}
export interface ClothesItem {
clothes_uuid: string
category_main: string
category_sub: string
style: string
color_main: string
color_sub: string
thickness: string
version: string
material: string
pattern: string
sleeve_type: string
clothes_type: string
neckline_type: string
formality: string
occasions: string
visual_impact: string
name: string
remark: string
processed_image: string
// 处理状态:1=抠图中 2=分类中 3=排队中 4=成功 5=失败(老响应可能无该字段,读取处需降级)
image_process_status?: number
// 处理失败原因:仅失败时由属主场景返回
fail_reason?: string
}
export interface OutfitItem {
outfit_uuid: string
outfit_name: string
outfit_desc: string
scene: string
source: number // 1 用户创建 2 AI 推荐
is_public: number // 1 私有 2 公开
audit_status: number // 1 待审核 2 通过 3 不通过
// 穿搭状态:1 正常 2 封禁 3 待用户保存(AI 推荐生成后未保存)
// 列表 / 详情 / 创建响应都会返回;超过 7 天未保存的 status=3 会被后端定时清理
status: number
items: Array<{ clothes_uuid: string; processed_image: string }>
}
// 社区穿搭列表项(/outfit/community 返回)
export interface CommunityOutfitItem {
outfit_uuid: string
outfit_name: string
outfit_desc: string
scene: string
source: number // 1 用户创建 2 AI 推荐
created_at: number // 秒级时间戳
items: Array<{ clothes_uuid: string; processed_image: string }>
owner_name: string
owner_avatar: string
like_count: number
collect_count: number
}
export interface GoodsItem {
id: number
goods_code: string
goods_name: string
goods_type: number // 1 会员 2 上传 3 AI 4 衣柜分享 5 搭配分享
price: number // 分
discount_price: number // 分
member_days: number
upload_quota: number
ai_recommend_quota: number
closet_share_quota: number
outfit_share_quota: number
valid_days: number
description: string
}
export interface OrderItem {
order_no: string
goods_name: string
unit_price: number // 分
pay_amount: number // 分
pay_channel: number // 1 微信支付 2 虚拟支付
order_status: number // 1 待支付 2 已支付 3 已取消 4 已过期 5 已退款 6 申请退款中
member_days: number
expire_time: number // 秒
pay_time: number
refund_time: number
refund_amount: number
created_at: number
}
export interface NotificationItem {
notification_uuid: string
msg_type: number // 1 点赞 2 订单 3 系统
title: string
content: string
is_read: number // 1 未读 2 已读
created_at: number
}
export interface QuotaItem {
quota_type: number
total: number
used: number
remain: number
}
export interface QuotaFlowItem {
quota_flow_uuid: string
quota_type: number
change_target: number
// 1 购买获赠 2 活动赠送 3 消耗 4 删除回退 5 人工调整 6 退款回收 7 到期失效(固定有效期凭证过期)
change_type: number
change_num: number // 正增负减(到期失效为负)
new_value: number
reason: string
// 购买/退款类为真实订单号;赠送/消耗/回退/到期类由后端填充流水 UUID 或凭证 ref_id(幂等用),不代表订单
order_no: string
created_at: number
}
export interface PayParams {
timeStamp: string
nonceStr: string
package: string
signType: string
paySign: string
}
// 虚拟支付下单响应(小程序虚拟支付 /order/virtual 返回)
export interface VirtualPayResult {
order_no: string
pay_amount: number // 分
expire_time: number // 秒
sign_data: string // 参与签名的 JSON 字符串(原样透传给 wx.requestVirtualPayment)
pay_sig: string // 支付签名
signature: string // 用户态签名
}
export interface HoroscopeData {
stat_date: number
zodiac: string
overall_score: number
love_score: number
career_score: number
wealth_score: number
daily_text: string
lucky_color: string
lucky_number: string
}
export interface ClosetShareItem {
share_uuid: string
share_type: number
clothes_count: number
expire_time: number
status: number
owner_name?: string
owner_avatar?: string
created_at: number
}
export interface ClosetShareDetail {
share_uuid: string
owner_name: string
owner_avatar: string
clothes: ClothesItem[]
expire_time: number
status: number
is_owner: boolean
}
// 穿搭分享列表项(/outfit-share 与 /outfit-share/received 返回)
export interface OutfitShareItem {
share_uuid: string
outfit_uuid: string
outfit_name: string
cover_image: string
items_count: number
status: number
owner_name?: string
owner_avatar?: string
created_at: number
}
// 穿搭分享详情(/outfit-share/:uuid 返回)
export interface OutfitShareDetail {
share_uuid: string
owner_name: string
owner_avatar: string
status: number
is_owner: boolean
outfit: OutfitItem
}
export interface AiRecommendResult {
outfit_uuid: string
outfit_name: string
outfit_desc: string
scene: string
source: number
status: number
outfit_item: Array<{ clothes_uuid: string }>
}
// AI 推荐为异步任务:提交只拿 task_id,再按 2 秒轮询状态
export interface AiRecommendSubmitResult {
task_id: string
status: number // 1=生成中
}
export interface AiRecommendTaskStatus {
task_id: string
status: number // 1=生成中 2=成功 3=失败
result?: AiRecommendResult
error_code?: number
error_msg?: string
}
export interface LoginResult {
access_token: string
refresh_token: string
expire_time: number
user_info: UserInfo
}
export interface PagedResult<T> {
total: number
page: number
page_size: number
list: T[]
}