|
|
@@ -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(),
|