import type { WorkOrdersListParams } from "@/domain/work-orders/types/work-order-list"; import type { WorkOrderBoardQueryParams, WorkOrderBoardSearchQueryParams, } from "@/domain/work-orders/types/work-order-board"; export const queryKeys = { auth: { all: ["auth"] as const, session: () => [...queryKeys.auth.all, "session"] as const, }, workOrders: { all: ["workOrders"] as const, list: (params?: WorkOrdersListParams) => [...queryKeys.workOrders.all, "list", params ?? {}] as const, board: (params?: WorkOrderBoardQueryParams) => [...queryKeys.workOrders.all, "board", params ?? {}] as const, boardSearch: (params?: WorkOrderBoardSearchQueryParams) => [...queryKeys.workOrders.all, "boardSearch", params ?? {}] as const, unassignedQueue: () => [...queryKeys.workOrders.all, "unassignedQueue"] as const, byLocation: (locationId: string | number, search = "") => [...queryKeys.workOrders.all, "byLocation", locationId, search] as const, detail: (id: string | number) => [...queryKeys.workOrders.all, "detail", id] as const, boardDetail: (id: string | number) => [...queryKeys.workOrders.all, "boardDetail", id] as const, boardMedia: (id: string | number) => [...queryKeys.workOrders.all, "boardMedia", id] as const, dispatch: (id: string | number) => [...queryKeys.workOrders.all, "dispatch", id] as const, taskTemplates: () => [...queryKeys.workOrders.all, "taskTemplates"] as const, dispatchers: () => [...queryKeys.workOrders.all, "dispatchers"] as const, }, pmSchedules: { all: ["pmSchedules"] as const, list: (params?: Record) => [...queryKeys.pmSchedules.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.pmSchedules.all, "detail", id] as const, }, accounts: { all: ["accounts"] as const, list: (params?: Record) => [...queryKeys.accounts.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.accounts.all, "detail", id] as const, }, employees: { all: ["employees"] as const, list: (params?: Record) => [...queryKeys.employees.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.employees.all, "detail", id] as const, }, dashboard: { all: ["dashboard"] as const, stats: () => [...queryKeys.dashboard.all, "stats"] as const, }, dropdownOptions: { all: ["dropdownOptions"] as const, byCategory: (category: string, parent?: string) => [...queryKeys.dropdownOptions.all, "byCategory", category, parent ?? ""] as const, }, locations: { all: ["locations"] as const, list: (params?: Record) => [...queryKeys.locations.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.locations.all, "detail", id] as const, dropdown: () => [...queryKeys.locations.all, "dropdown"] as const, sites: (search = "") => [...queryKeys.locations.all, "sites", search] as const, }, vendors: { all: ["vendors"] as const, list: (params?: Record) => [...queryKeys.vendors.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.vendors.all, "detail", id] as const, facets: (isActive?: boolean) => [...queryKeys.vendors.all, "facets", isActive ?? null] as const, dropdown: (trade?: string, siteZip?: string) => [...queryKeys.vendors.all, "dropdown", trade ?? "", siteZip ?? ""] as const, portalToken: (vendorId: string | number) => [...queryKeys.vendors.all, "portalToken", vendorId] as const, deactivationImpact: (vendorId: string | number) => [...queryKeys.vendors.all, "deactivationImpact", vendorId] as const, roster: (by: "vendorId" | "companyId", id: string | number) => [...queryKeys.vendors.all, "roster", by, id] as const, }, calendar: { all: ["calendar"] as const, range: (start: string, end: string) => [...queryKeys.calendar.all, "range", start, end] as const, detail: (id: string | number) => [...queryKeys.calendar.all, "detail", id] as const, }, uplifts: { all: ["uplifts"] as const, queue: (params?: Record) => [...queryKeys.uplifts.all, "queue", params ?? {}] as const, forDispatch: (dispatchId: string | number) => [...queryKeys.uplifts.all, "dispatch", dispatchId] as const, evidence: (id: string | number) => [...queryKeys.uplifts.all, "evidence", id] as const, }, vendorPos: { all: ["vendorPos"] as const, list: (params?: Record) => [...queryKeys.vendorPos.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.vendorPos.all, "detail", id] as const, }, followUps: { all: ["followUps"] as const, list: (params?: Record) => [...queryKeys.followUps.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.followUps.all, "detail", id] as const, }, contacts: { all: ["contacts"] as const, list: (params?: Record) => [...queryKeys.contacts.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.contacts.all, "detail", id] as const, }, taskTemplates: { all: ["taskTemplates"] as const, }, assets: { all: ["assets"] as const, list: (params?: Record) => [...queryKeys.assets.all, "list", params ?? {}] as const, detail: (id: string | number) => [...queryKeys.assets.all, "detail", id] as const, sites: () => [...queryKeys.assets.all, "sites"] as const, }, vendorPortal: { all: ["vendorPortal"] as const, session: (token: string) => [...queryKeys.vendorPortal.all, "session", token] as const, dispatches: (token: string) => [...queryKeys.vendorPortal.all, "dispatches", token] as const, dispatch: (token: string, id: string | number) => [...queryKeys.vendorPortal.all, "dispatch", token, id] as const, }, } as const;