import { AirlineBookingPackageOption } from "./airline-booking-package-option";
import { AirportBookingPackageOption } from "./airport-booking-package-option";
import { BookingAirlineGroup } from "./booking-airline-group";
import { BookingAirportGroup } from "./booking-airport-group";
import { BookingOptionGroup } from "./booking-option-group";
import { BookingOptionPax } from "./booking-option-pax";
import { BookingOptionUnit } from "./booking-option-unit";
import { BookingPackageAvailability } from "./booking-package-availability";
import { BookingPackageHotel } from "./booking-package-hotel";
import { BookingPackageRequestRoom } from "./booking-package-request-room";
import { BookingPackageRoom } from "./booking-package-room";
import { PerBookingPackageOption } from "./per-booking-package-option";

export interface BookingPackageOption {
  id: string;
  isSelected: boolean;

  catalogueId: number;
  code: string;
  name: string;
  price: number;
  serviceType: number;
  tagIds: number[];
  includedServiceTypes: number[];
  isOnRequest: boolean;
  provider: string;

  countryName: string;
  regionName: string;
  oordName: string;
  locationName: string;

  unitCount: number;
  requestRooms: BookingPackageRequestRoom[];

  fromDate: string;
  toDate: string;
  startTime: string;
  endTime: string;

  hotels: BookingPackageHotel[];

  allotmentTourCode: string;
  allotmentName: string;
  customAllotmentStatus: string;
  allotmentTagIds: number[];

  availabilities: BookingPackageAvailability[];
  rooms: BookingPackageRoom[];
  airlineGroups: BookingAirlineGroup<AirlineBookingPackageOption>[];
  airportGroups: BookingAirportGroup<AirportBookingPackageOption>[];
  groups: BookingOptionGroup<PerBookingPackageOption>[];
  optionUnits: BookingOptionUnit[];
  optionPax: BookingOptionPax[];
}
