From e739c061c4616ddb6d5cb9268a86926eb702e1cb Mon Sep 17 00:00:00 2001 From: jacobxu666 Date: Fri, 26 Jun 2026 09:48:20 +0800 Subject: [PATCH] feat(types): add ScenicSession, ReserveRecord, Notice, FaqItem, PageResult types Co-Authored-By: Claude --- src/api/types.ts | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/src/api/types.ts b/src/api/types.ts index 12b2a7e..fc4d217 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -90,3 +90,93 @@ export interface MockPayResult { success: boolean orderId: string } + +/** 景区场次 */ +export interface ScenicSession { + id: number + scenicId: number + date: string + startTime: string + endTime: string + stock: number + remainStock: number +} + +/** 预约记录 */ +export interface ReserveRecord { + id: number + scenicId: number + scenicName: string + date: string + session: string + status: 'pending' | 'confirmed' | 'cancelled' | 'used' + userName?: string + maskedId?: string + cardType?: string + cardNo?: string + applyTime?: string + cancelTime?: string + verifyTime?: string + verifyPhoto?: string +} + +/** 公告 */ +export interface Notice { + id: number + title: string + content: string + body?: string + publishTime: string + isTop: boolean +} + +/** 首页快捷入口 */ +export interface QuickAction { + id: number + icon: string + label: string + path: string +} + +/** 首页弹窗公告 */ +export interface Announcement { + id: number + type?: string + typeLabel?: string + title: string + date?: string + content: string + body?: string +} + +/** 订单详情 */ +export interface OrderDetail extends OrderInfo { + orderNo?: string + payTime?: string + payChannel?: string + redeemCode?: string + activatedTime?: string + refundedTime?: string + originalPrice?: number + cardType?: string +} + +/** FAQ 条目 */ +export interface FaqItem { + q: string + a: Array<{ text: string; highlight?: boolean; copy?: string }> +} + +/** 分页结果 */ +export interface PageResult { + list: T[] + total: number + page: number + pageSize: number +} + +/** 分页请求参数 */ +export interface PageQuery { + page: number + pageSize: number +}