import { useEffect } from 'react';

/**
 * Custom hook to automatically set or adjust the checkout date
 * based on the check-in date, ensuring a minimum stay of 7 days.
 * @param checkInDate - The selected check-in date (or null)
 * @param checkOutDate - The selected check-out date (or null)
 * @param setCheckOutDate - Setter function to update the check-out date
 */
export function useAutoCheckOutDate(
  checkInDate: Date | null,
  checkOutDate: Date | null,
  setCheckOutDate: (date: Date) => void
) {
  useEffect(() => {
    if (checkInDate) {
      const checkIn = new Date(checkInDate);

      // Calculate default checkout date
      const defaultCheckOut = new Date(checkIn);
      defaultCheckOut.setDate(checkIn.getDate() + 7);

      if (checkOutDate) {
        const checkOut = new Date(checkOutDate);

        // Calculate difference in days
        const diffDays = Math.ceil((checkOut.getTime() - checkIn.getTime()) / (1000 * 60 * 60 * 24));

        // If the stay is less than 6 days, update checkout date
        if (diffDays < 8) {
          setCheckOutDate(defaultCheckOut);
        }
      } else {
        // No checkout date provided
        setCheckOutDate(defaultCheckOut);
      }
    }
  }, [checkInDate]);
}
