import { useEffect, useState } from "react";
import { WorkShiftRowSchema, WorkShiftsService } from "../../../../../client";
import { ShiftsTableType } from "../../../components/ShiftsTableSegmentedControl/ShiftsTableSegmentedControl.tsx";


const useWorkShiftsTable = () => {
    const [totalPages, setTotalPages] = useState(1);
    const [page, setPage] = useState(1);
    const [shifts, setShifts] = useState<WorkShiftRowSchema[]>([]);
    const [shiftsTableType, setShiftsTableType] = useState<ShiftsTableType>(ShiftsTableType.ACTIVE);
    const [isLoading, setIsLoading] = useState(false);

    const fetchShifts = () => {
        setIsLoading(true);
        WorkShiftsService.getShifts({
            isActive: shiftsTableType === ShiftsTableType.ACTIVE,
            page,
            itemsPerPage: 10,
        })
            .then(res => {
                setShifts(res.shifts);
                setTotalPages(res.paginationInfo.totalPages);
            })
            .catch(err => console.log(err))
            .finally(() => setIsLoading(false));
    };

    useEffect(() => {
        fetchShifts();
    }, [shiftsTableType, page]);

    return {
        shifts,
        shiftsTableType,
        setShiftsTableType,
        totalPages,
        page,
        setPage,
        fetchShifts,
        isLoading,
    };
};

export default useWorkShiftsTable;
