32 lines
870 B
TypeScript
32 lines
870 B
TypeScript
import { z } from "zod";
|
|
import { PackageType, PaymentMethod } from "./enums";
|
|
export * from "../../../passengerinfo/data/entities";
|
|
|
|
// Flight package selection models
|
|
|
|
export const packageSelectionModel = z.object({
|
|
packageType: z.enum([
|
|
PackageType.Basic,
|
|
PackageType.Flex,
|
|
PackageType.Premium,
|
|
]),
|
|
insurance: z.boolean().default(false),
|
|
});
|
|
export type PackageSelection = z.infer<typeof packageSelectionModel>;
|
|
|
|
// payment models
|
|
|
|
export const cardInfoModel = z.object({
|
|
nameOnCard: z.string().min(1).max(255),
|
|
number: z.string().max(20),
|
|
expiryDate: z.string().max(8),
|
|
cvv: z.string().max(6),
|
|
});
|
|
export type CardInfo = z.infer<typeof cardInfoModel>;
|
|
|
|
export const paymentInfoModel = z.object({
|
|
method: z.enum([PaymentMethod.Card]).default(PaymentMethod.Card),
|
|
cardInfo: cardInfoModel,
|
|
});
|
|
export type PaymentInfo = z.infer<typeof paymentInfoModel>;
|