import { useQuery } from "@tanstack/react-query"; import { QUERY_KEYS } from "@/constants/QUERY_KEYS"; import { overviewService } from "@/services/overview.service"; import type { OverviewRange } from "@/types/overview"; export function useOverview(range: OverviewRange = "30d") { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.dashboard(range), queryFn: () => overviewService.getDashboard(range), }); } /** Layouts the caller may render — server-filtered by permission, same shape as useReports' catalog. */ export function useOverviewLayouts() { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.layouts(), queryFn: () => overviewService.getLayouts(), staleTime: 5 * 60 * 1000, }); } export function useOverviewBookingsTab(range: OverviewRange, enabled: boolean) { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.bookingsTab(range), queryFn: () => overviewService.getBookingsTab(range), enabled, }); } export function useOverviewContractsTab(range: OverviewRange, enabled: boolean) { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.contractsTab(range), queryFn: () => overviewService.getContractsTab(range), enabled, }); } export function useOverviewBillingTab(range: OverviewRange, enabled: boolean) { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.billingTab(range), queryFn: () => overviewService.getBillingTab(range), enabled, }); } export function useOverviewOperationsTab(range: OverviewRange, enabled: boolean) { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.operationsTab(range), queryFn: () => overviewService.getOperationsTab(range), enabled, }); } export function useOverviewFleetTab(range: OverviewRange, enabled: boolean) { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.fleetTab(range), queryFn: () => overviewService.getFleetTab(range), enabled, }); } export function useOverviewClearanceTab(enabled: boolean) { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.clearanceTab(), queryFn: () => overviewService.getClearanceTab(), enabled, }); } export function useOverviewCustomersTab(range: OverviewRange, enabled: boolean) { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.customersTab(range), queryFn: () => overviewService.getCustomersTab(range), enabled, }); } export function useOverviewStaffTab(range: OverviewRange, enabled: boolean) { return useQuery({ queryKey: QUERY_KEYS.OVERVIEW.staffTab(range), queryFn: () => overviewService.getStaffTab(range), enabled, }); }