import type { z } from "zod"

import type {
  ancillaryPackageInputSchema,
  breakfastPackageInputSchema,
  roomPackagesInputSchema,
} from "@/server/routers/hotels/input"
import type { packagesSchema } from "@/server/routers/hotels/output"
import type { RoomPackageCodeEnum } from "../components/hotelReservation/selectRate/roomFilter"
import type { BreakfastPackageEnum } from "../enums/breakfast"

export interface BreackfastPackagesInput
  extends z.input<typeof breakfastPackageInputSchema> {}

export interface AncillaryPackagesInput
  extends z.input<typeof ancillaryPackageInputSchema> {}

export interface PackagesInput
  extends z.input<typeof roomPackagesInputSchema> {}

export interface PackagesOutput
  extends z.output<typeof roomPackagesInputSchema> {}

export type Packages = z.output<typeof packagesSchema>
export type Package = NonNullable<Packages>[number]

export type PackageEnum = BreakfastPackageEnum | RoomPackageCodeEnum
