shoc-frontend-new/src/infra/query-key/query-key.ts
2026-09-17 15:30:16 -03:00

157 lines
7.6 KiB
TypeScript

import type { DashboardRangeKey } from "@/domain/dashboard/types/dashboard-range";
import type { DashboardTrendParams } from "@/domain/dashboard/types/dashboard-trend";
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,
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,
directory: () => [...queryKeys.workOrders.all, "directory"] as const,
uplifts: (workOrderId: string | number) =>
[...queryKeys.workOrders.all, "uplifts", workOrderId] as const,
},
pmSchedules: {
all: ["pmSchedules"] as const,
list: (params?: Record<string, unknown>) =>
[...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<string, unknown>) =>
[...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<string, unknown>) =>
[...queryKeys.employees.all, "list", params ?? {}] as const,
detail: (id: string | number) => [...queryKeys.employees.all, "detail", id] as const,
},
teamMembers: {
all: ["teamMembers"] as const,
list: () => [...queryKeys.teamMembers.all, "list"] as const,
detail: (id: string | number) => [...queryKeys.teamMembers.all, "detail", id] as const,
},
dashboard: {
all: ["dashboard"] as const,
stats: (range: DashboardRangeKey, dispatcherId: string | null = null) =>
[...queryKeys.dashboard.all, "stats", range, dispatcherId] as const,
workload: (range: DashboardRangeKey, page = 1, dispatcherId: string | null = null) =>
[...queryKeys.dashboard.all, "workload", range, page, dispatcherId] as const,
performance: (range: DashboardRangeKey, page = 1, dispatcherId: string | null = null) =>
[...queryKeys.dashboard.all, "performance", range, page, dispatcherId] as const,
regions: (range: DashboardRangeKey, dispatcherId: string | null = null) =>
[...queryKeys.dashboard.all, "regions", range, dispatcherId] as const,
vendorInsights: () => [...queryKeys.dashboard.all, "vendorInsights"] as const,
trend: (params?: DashboardTrendParams) =>
[...queryKeys.dashboard.all, "trend", params ?? {}] as const,
},
dropdownOptions: {
all: ["dropdownOptions"] as const,
byCategory: (category: string, parent?: string) =>
[...queryKeys.dropdownOptions.all, "byCategory", category, parent ?? ""] as const,
},
services: {
all: ["services"] as const,
active: () => [...queryKeys.services.all, "active"] as const,
byWorkOrderType: (workOrderType: string) =>
[...queryKeys.services.all, "byWorkOrderType", workOrderType] as const,
},
locations: {
all: ["locations"] as const,
list: (params?: Record<string, unknown>) =>
[...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<string, unknown>) =>
[...queryKeys.vendors.all, "list", params ?? {}] as const,
directoryList: (params?: Record<string, unknown>) =>
[...queryKeys.vendors.all, "directoryList", 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<string, unknown>) =>
[...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,
canApprove: (tier: number) => [...queryKeys.uplifts.all, "can-approve", tier] as const,
},
vendorPos: {
all: ["vendorPos"] as const,
list: (params?: Record<string, unknown>) =>
[...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<string, unknown>) =>
[...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<string, unknown>) =>
[...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<string, unknown>) =>
[...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;