366 lines
7.3 KiB
Plaintext
366 lines
7.3 KiB
Plaintext
// 电商商城系统类型定义 - UTS Android 兼容
|
|
|
|
// 用户类型
|
|
export type UserType = {
|
|
id: string
|
|
phone: string
|
|
email: string | null
|
|
nickname: string | null
|
|
avatar_url: string | null
|
|
gender: number
|
|
user_type: number
|
|
status: number
|
|
created_at: string
|
|
}
|
|
|
|
// 商城用户扩展信息类型
|
|
export type MallUserProfileType = {
|
|
id: string
|
|
user_id: string
|
|
user_type: number
|
|
status: number
|
|
real_name: string | null
|
|
id_card: string | null
|
|
credit_score: number
|
|
mall_role: string
|
|
verification_status: number
|
|
verification_data: UTSJSONObject | null
|
|
business_license: string | null
|
|
shop_category: string | null
|
|
service_areas: UTSJSONObject | null
|
|
emergency_contact: string | null
|
|
preferences: UTSJSONObject | null
|
|
created_at: string
|
|
updated_at: string
|
|
}
|
|
|
|
// 用户地址类型
|
|
export type UserAddressType = {
|
|
id: string
|
|
user_id: string
|
|
receiver_name: string
|
|
receiver_phone: string
|
|
province: string
|
|
city: string
|
|
district: string
|
|
address_detail: string
|
|
postal_code: string | null
|
|
is_default: boolean
|
|
label: string | null
|
|
coordinates: string | null
|
|
delivery_instructions: string | null
|
|
business_hours: string | null
|
|
status: number
|
|
created_at: string
|
|
updated_at: string
|
|
}
|
|
|
|
// 商家类型
|
|
export type MerchantType = {
|
|
id: string
|
|
user_id: string
|
|
shop_name: string
|
|
shop_logo: string | null
|
|
shop_banner: string | null
|
|
shop_description: string | null
|
|
contact_name: string
|
|
contact_phone: string
|
|
shop_status: number
|
|
rating: number
|
|
total_sales: number
|
|
created_at: string
|
|
}
|
|
|
|
// 商品类型
|
|
export type ProductType = {
|
|
id: string
|
|
merchant_id: string
|
|
category_id: string
|
|
name: string
|
|
description: string | null
|
|
images: Array<string>
|
|
price: number
|
|
original_price: number | null
|
|
stock: number
|
|
sales: number
|
|
status: number
|
|
created_at: string
|
|
}
|
|
|
|
// 商品SKU类型
|
|
export type ProductSkuType = {
|
|
id: string
|
|
product_id: string
|
|
sku_code: string
|
|
specifications: UTSJSONObject | null
|
|
price: number
|
|
stock: number
|
|
image_url: string | null
|
|
status: number
|
|
}
|
|
|
|
// 购物车类型
|
|
export type CartItemType = {
|
|
id: string
|
|
user_id: string
|
|
product_id: string
|
|
sku_id: string
|
|
quantity: number
|
|
selected: boolean
|
|
product: ProductType | null
|
|
sku: ProductSkuType | null
|
|
}
|
|
|
|
// 订单类型
|
|
export type OrderType = {
|
|
id: string
|
|
order_no: string
|
|
user_id: string
|
|
merchant_id: string
|
|
status: number
|
|
total_amount: number
|
|
discount_amount: number
|
|
delivery_fee: number
|
|
actual_amount: number
|
|
payment_method: number | null
|
|
payment_status: number
|
|
delivery_address: UTSJSONObject
|
|
created_at: string
|
|
}
|
|
|
|
// 订单商品类型
|
|
export type OrderItemType = {
|
|
id: string
|
|
order_id: string
|
|
product_id: string
|
|
sku_id: string
|
|
product_name: string
|
|
sku_specifications: UTSJSONObject | null
|
|
price: number
|
|
quantity: number
|
|
total_amount: number
|
|
}
|
|
|
|
// 配送员类型
|
|
export type DeliveryDriverType = {
|
|
id: string
|
|
user_id: string
|
|
real_name: string
|
|
id_card: string
|
|
driver_license: string | null
|
|
vehicle_type: number
|
|
vehicle_number: string | null
|
|
work_status: number
|
|
current_location: UTSJSONObject | null
|
|
service_areas: Array<string>
|
|
rating: number
|
|
total_orders: number
|
|
auth_status: number
|
|
created_at: string
|
|
updated_at: string
|
|
}
|
|
|
|
// 配送任务类型
|
|
export type DeliveryTaskType = {
|
|
id: string
|
|
order_id: string
|
|
driver_id: string | null
|
|
pickup_address: UTSJSONObject
|
|
delivery_address: UTSJSONObject
|
|
distance: number | null
|
|
estimated_time: number | null
|
|
delivery_fee: number
|
|
status: number
|
|
pickup_time: string | null
|
|
delivered_time: string | null
|
|
delivery_code: string | null
|
|
remark: string | null
|
|
created_at: string
|
|
updated_at: string
|
|
}
|
|
|
|
// 优惠券模板类型
|
|
export type CouponTemplateType = {
|
|
id: string
|
|
name: string
|
|
description: string | null
|
|
coupon_type: number
|
|
discount_type: number
|
|
discount_value: number
|
|
min_order_amount: number
|
|
max_discount_amount: number | null
|
|
total_quantity: number | null
|
|
per_user_limit: number
|
|
usage_limit: number
|
|
merchant_id: string | null
|
|
category_ids: Array<string>
|
|
product_ids: Array<string>
|
|
user_type_limit: number | null
|
|
start_time: string
|
|
end_time: string
|
|
status: number
|
|
created_at: string
|
|
}
|
|
|
|
// 用户优惠券类型
|
|
export type UserCouponType = {
|
|
id: string
|
|
user_id: string
|
|
template_id: string
|
|
coupon_code: string
|
|
status: number
|
|
used_at: string | null
|
|
order_id: string | null
|
|
received_at: string
|
|
expire_at: string
|
|
}
|
|
|
|
// 分页数据类型
|
|
export type PageDataType<T> = {
|
|
data: Array<T>
|
|
total: number
|
|
page: number
|
|
pageSize: number
|
|
hasMore: boolean
|
|
}
|
|
|
|
// API响应类型
|
|
export type ApiResponseType<T> = {
|
|
success: boolean
|
|
data: T | null
|
|
message: string
|
|
code: number
|
|
}
|
|
|
|
// 订单状态枚举
|
|
export const ORDER_STATUS = {
|
|
PENDING_PAYMENT: 1,
|
|
PAID: 2,
|
|
SHIPPED: 3,
|
|
DELIVERED: 4,
|
|
COMPLETED: 5,
|
|
CANCELLED: 6,
|
|
REFUNDING: 7,
|
|
REFUNDED: 8
|
|
} as const
|
|
|
|
// 优惠券类型枚举
|
|
export const COUPON_TYPE = {
|
|
DISCOUNT_AMOUNT: 1, // 满减券
|
|
DISCOUNT_PERCENT: 2, // 折扣券
|
|
FREE_SHIPPING: 3, // 免运费券
|
|
NEWBIE: 4, // 新人券
|
|
MEMBER: 5, // 会员券
|
|
CATEGORY: 6, // 品类券
|
|
MERCHANT: 7, // 商家券
|
|
LIMITED_TIME: 8 // 限时券
|
|
} as const
|
|
|
|
// 支付方式枚举
|
|
export const PAYMENT_METHOD = {
|
|
WECHAT: 1,
|
|
ALIPAY: 2,
|
|
UNIONPAY: 3,
|
|
BALANCE: 4
|
|
} as const
|
|
|
|
// 配送状态枚举
|
|
export const DELIVERY_STATUS = {
|
|
PENDING: 1,
|
|
ASSIGNED: 2,
|
|
PICKED_UP: 3,
|
|
IN_TRANSIT: 4,
|
|
DELIVERED: 5,
|
|
FAILED: 6
|
|
} as const
|
|
|
|
// 用户类型枚举
|
|
export const MALL_USER_TYPE = {
|
|
CONSUMER: 1, // 消费者
|
|
MERCHANT: 2, // 商家
|
|
DELIVERY: 3, // 配送员
|
|
SERVICE: 4, // 客服
|
|
ADMIN: 5 // 管理员
|
|
} as const
|
|
|
|
// 用户状态枚举
|
|
export const USER_STATUS = {
|
|
NORMAL: 1, // 正常
|
|
FROZEN: 2, // 冻结
|
|
CANCELLED: 3, // 注销
|
|
PENDING: 4 // 待审核
|
|
} as const
|
|
|
|
// 认证状态枚举
|
|
export const VERIFICATION_STATUS = {
|
|
UNVERIFIED: 0, // 未认证
|
|
VERIFIED: 1, // 已认证
|
|
FAILED: 2 // 认证失败
|
|
} as const
|
|
|
|
// 地址标签枚举
|
|
export const ADDRESS_LABEL = {
|
|
HOME: 'home', // 家
|
|
OFFICE: 'office', // 公司
|
|
SCHOOL: 'school', // 学校
|
|
OTHER: 'other' // 其他
|
|
} as const
|
|
|
|
// 收藏类型枚举
|
|
export const FAVORITE_TYPE = {
|
|
PRODUCT: 'product', // 商品
|
|
SHOP: 'shop' // 店铺
|
|
} as const
|
|
|
|
// =========================
|
|
// 订阅相关类型与枚举
|
|
// =========================
|
|
|
|
// 订阅周期枚举
|
|
export const SUBSCRIPTION_PERIOD = {
|
|
MONTHLY: 'monthly',
|
|
YEARLY: 'yearly'
|
|
} as const
|
|
|
|
// 订阅状态枚举
|
|
export const SUBSCRIPTION_STATUS = {
|
|
TRIAL: 'trial',
|
|
ACTIVE: 'active',
|
|
PAST_DUE: 'past_due',
|
|
CANCELED: 'canceled',
|
|
EXPIRED: 'expired'
|
|
} as const
|
|
|
|
// 软件订阅方案类型
|
|
export type SubscriptionPlanType = {
|
|
id: string
|
|
plan_code: string
|
|
name: string
|
|
description: string | null
|
|
features: UTSJSONObject | null // { featureKey: description }
|
|
price: number // 单位:元(或分,取决于后端;前端以显示为准)
|
|
currency: string | null // 'CNY' | 'USD' ...
|
|
billing_period: keyof typeof SUBSCRIPTION_PERIOD | string // 'monthly' | 'yearly'
|
|
trial_days: number | null
|
|
is_active: boolean
|
|
sort_order?: number | null
|
|
created_at?: string
|
|
updated_at?: string
|
|
}
|
|
|
|
// 用户订阅记录类型
|
|
export type UserSubscriptionType = {
|
|
id: string
|
|
user_id: string
|
|
plan_id: string
|
|
status: keyof typeof SUBSCRIPTION_STATUS | string
|
|
start_date: string
|
|
end_date: string | null
|
|
next_billing_date: string | null
|
|
auto_renew: boolean
|
|
cancel_at_period_end?: boolean | null
|
|
metadata?: UTSJSONObject | null
|
|
created_at?: string
|
|
updated_at?: string
|
|
}
|