export interface ResponseHeader {
  statusData: {
    completionCode: number;
    completionMessage: string;
  };
  errors: {
    error: { errorCode: number; errorMessage: string };
  };
}

export interface ResortAvailabilityInfo {
  systemId: {
    inventoryType: number | string;
    inventoryId: string;
  };
  checkInDate: string;
  checkOutDate: string;
  unitCost: {
    value: number;
    currency: string;
  };
  unitCount: number;
}

export interface AccommodationItem {
  resortId: string;
  resortName: string;
  nbrOfBedrooms: number;
  nbrOfBathrooms: number;
  kitchenType: string;
  maxOccupancy: number;
  privacyOccupancy: number;
  availabilityInfo: ResortAvailabilityInfo[];
}

export interface ResortsSearchResponse {
  sessionToken: {
    sessionId: number;
  };
  accommodationItem: AccommodationItem[];
}

export interface ReservationResponse {
  ReservationToken: {
    inventoryType: string;
    referenceNumber: string;
    unitNumber?: string;
  };
  status: "H" | "C";
}

export interface ReservationGuest {
  firstName: string;
  lastName: string;
  addressLine1: string;
  addressLine2: string;
  addressLine3: string;
  city: string;
  state: string;
  country: string;
  zipcode: string;
  phone: string;
  email: string;
}
