import type { IBookingRequestItemPassengerInformation, ReservationData, } from "@/services/eva-display/demand/demand-service.types"; import type { IDisplayInformations } from "@/services/eva-display/demand/display-information/display-information"; import type { IFlightBookedProduct } from "@/services/eva-display/demand/flight-booked-product/flight-booked-product"; import type { IFlightDisplayInformation } from "@/services/eva-display/demand/flight-display-information/flight-display-information"; import type IRentACarDisplayInformation from "@/services/eva-display/demand/rent-a-car-display-information/rent-a-car-display-information"; import type IRentACarReservationData from "@/services/eva-display/demand/rent-a-car-reservation-data/rent-a-car-reservation-data"; import type { ITransferDisplayInformation } from "@/services/eva-display/demand/transfer-display-information/transfer-display-information"; import type { ITransferReservationData } from "@/services/eva-display/demand/transfer-reservation-data/transfer-reservation-data"; export interface IBookingRequest { id: number; displayInformations: | IDisplayInformations | IFlightDisplayInformation | IRentACarDisplayInformation | ITransferDisplayInformation | undefined; moduleName: "Hotel" | "Flight" | "Transfer" | "CarRental" | undefined; passengerInformations: IBookingRequestItemPassengerInformation[] | undefined; searchId: string; userId: string; masterUserId?: any; travelReasonId: number; travelReasonName?: any; bookedProduct: any | undefined; predictedPriceTry: number; extraServiceRequests?: any; reservationData: ReservationData | ITransferReservationData | undefined; searchRequest: string; bookedPriceTry?: any; budgetRoleId?: any; requestStatus: number; beforeRequestId?: any; createDate: string; updateDate: string; createdByUserId: string; totalPrice: number; netPrice?: number; createdByUserName?: any; updatedByUserId: string; updatedByUserName?: any; status: number; cancelRequest: number; corpBookingRecords?: any; corpRequestHistories?: CorpRequestHistories[]; requesterUserIds?: string[]; } export interface CorpRequestHistories { id: number; dateTime: string; description: any; newStatus: number; oldStatus: number; userId: string; type: number; createDate: string; updateDate: string; createdByUserName: string; updatedByUserId: string; updatedByUserName: string; status: number; createdByFullName?: string; } export interface IFlightBookingRequest extends IBookingRequest { moduleName: "Flight"; displayInformations: IFlightDisplayInformation | undefined; reservationData: ReservationData; bookedProduct: IFlightBookedProduct; } export interface IRentACarBookingRequest extends IBookingRequest { moduleName: "CarRental"; displayInformations: IRentACarDisplayInformation | undefined; bookedProduct: IRentACarReservationData; } export interface ITransferBookingRequest extends IBookingRequest { moduleName: "Transfer"; displayInformations: ITransferDisplayInformation | undefined; bookedProduct: null; reservationData: ITransferReservationData; }