declare type TFacility = {
  _id?: string;
  name: string;
  featuredImage: { _id: string; name: string } | null | any;
  site: string;
  gallery: { _id: string; name: string }[];
  monday: {
    isEnabled: boolean;
    startTime: string;
    endTime: string;
    breakTimes: { startTime: string; endTime: string }[];
    peakTimes: { startTime: string; endTime: string }[];
    timeSlotsManual: { startTime: string; endTime: string }[] | null;
  };
  tuesday: {
    isEnabled: boolean;
    startTime: string;
    endTime: string;
    breakTimes: { startTime: string; endTime: string }[];
    peakTimes: { startTime: string; endTime: string }[];
    timeSlotsManual: { startTime: string; endTime: string }[] | null;
  };
  wednesday: {
    isEnabled: boolean;
    startTime: string;
    endTime: string;
    breakTimes: { startTime: string; endTime: string }[];
    peakTimes: { startTime: string; endTime: string }[];
    timeSlotsManual: { startTime: string; endTime: string }[] | null;
  };
  thursday: {
    isEnabled: boolean;
    startTime: string;
    endTime: string;
    breakTimes: { startTime: string; endTime: string }[];
    peakTimes: { startTime: string; endTime: string }[];
    timeSlotsManual: { startTime: string; endTime: string }[] | null;
  };
  friday: {
    isEnabled: boolean;
    startTime: string;
    endTime: string;
    breakTimes: { startTime: string; endTime: string }[];
    peakTimes: { startTime: string; endTime: string }[];
    timeSlotsManual: { startTime: string; endTime: string }[] | null;
  };
  saturday: {
    isEnabled: boolean;
    startTime: string;
    endTime: string;
    breakTimes: { startTime: string; endTime: string }[];
    peakTimes: { startTime: string; endTime: string }[];
    timeSlotsManual: { startTime: string; endTime: string }[] | null;
  };
  sunday: {
    isEnabled: boolean;
    startTime: string;
    endTime: string;
    breakTimes: { startTime: string; endTime: string }[];
    peakTimes: { startTime: string; endTime: string }[];
    timeSlotsManual: { startTime: string; endTime: string }[] | null;
  };
  description: string;
  about: string;
  maintenanceDatesWithTimes: Record<string, any>[];
  maintenanceWeekly: string[];
  maintenanceMonthly: string[];
  createdAt?: Date;
  updatedAt?: Date;
  status?: string;
  rulesAndPolicies?: string;
  icon?: string;
  hourInterval?: number;
  isBookingFeeEnabled: boolean;
  isGuestEnabled: boolean;
  bookingAmount: number | null;
  peakBookingFeeAmount?: number | null;
  bookingFeeGuestAmount?: number | null;
  peakBookingFeeGuestAmount?: number | null;
  bookingFeeRefundPercentage?: number | null;
  bookingCurrency: string;
  isDepositEnabled: boolean;
  depositAmount: number | null;
  depositCurrency: string;
  refundFrom: number;
  refundTo: number;
  isCancellationAutoRefundEnabled: boolean;
  isBookingPolicyEnabled: boolean;
  bookingPolicy: string;
  securityCheckList: {
    description: string;
    count: number;
    permanentRemarks: string;
  }[];
  isBookingUnitLimitEnabled: boolean;
  bookingUnitLimit: number | null;
  isMaxNumberGuestLimitEnabled: boolean;
  maxNumberGuestLimit: number | null;
  isCancelAllowedLimitEnabled: boolean;
  daysAllowedCancel: number | null;
  isBookingPolicyEnabled: boolean;
  updatedBy?: string;
};

declare type TFacilityResponse = {
  items: TFacility[];
  pageRange: string;
  pages: number;
};

declare type TFacilitiesByPageSearchResponse = {
  items: TFacility[];
  pageRange: string;
  pages: number;
};

declare type TUpdateFacilityNameOptions = {
  _id: string;
  name: string;
};

declare type TItemFacility = {
  _id: string;
  name: string;
  units: any[];
  createdAt: string;
  updatedAt: string;
  organization: string;
  site: string;
};
