Selaa lähdekoodia

✨ feat(order): add passenger snapshot schema validation

- 创建PassengerSnapshotSchema验证乘客快照数据结构
- 替换order创建和响应schema中的z.any()为PassengerSnapshotSchema
- 乘客快照包含id(可选)、name、idType、idNumber和phone(可选)字段
yourname 3 kuukautta sitten
vanhempi
sitoutus
e62f7a16c8
1 muutettua tiedostoa jossa 11 lisäystä ja 2 poistoa
  1. 11 2
      packages/server/src/modules/orders/order.schema.ts

+ 11 - 2
packages/server/src/modules/orders/order.schema.ts

@@ -3,6 +3,15 @@ import { OrderStatus, PaymentStatus } from '../../share/order.types';
 
 
 
+// 乘客快照Schema
+export const PassengerSnapshotSchema = z.object({
+  id: z.number().optional(),
+  name: z.string(),
+  idType: z.string(),
+  idNumber: z.string(),
+  phone: z.string().optional()
+});
+
 // 路线快照Schema
 export const RouteSnapshotSchema = z.object({
   id: z.number(),
@@ -20,7 +29,7 @@ export const OrderCreateSchema = z.object({
   routeId: z.number().int().positive(),
   passengerCount: z.number().int().min(1),
   totalAmount: z.number().positive(),
-  passengerSnapshots: z.array(z.any()),
+  passengerSnapshots: z.array(PassengerSnapshotSchema),
   routeSnapshot: RouteSnapshotSchema,
   createdBy: z.number().int().positive().optional()
 });
@@ -55,7 +64,7 @@ export const OrderResponseSchema = z.object({
   totalAmount: z.coerce.number(),
   status: z.nativeEnum(OrderStatus),
   paymentStatus: z.nativeEnum(PaymentStatus),
-  passengerSnapshots: z.array(z.any()),
+  passengerSnapshots: z.array(PassengerSnapshotSchema),
   routeSnapshot: RouteSnapshotSchema,
   createdBy: z.number().nullable().optional(),
   updatedBy: z.number().nullable().optional(),