import { useQuery, type UseQueryResult } from "@tanstack/react-query"; import type { MediaUploadPolicy } from "@/api/media-upload-contracts"; import { workOrdersMediaUploadApi } from "@/domain/work-orders/api/work-order-media-upload-api"; import { queryKeys } from "@/infra/query-key/query-key"; /** * Server-derived Emergency/Reactive media policy: type, canUpload, limits and * remaining counts (existing + pending reservations included server-side). */ export function useWorkOrderMediaPolicy( workOrderId: string | number | undefined, enabled: boolean, ): UseQueryResult { return useQuery({ queryKey: workOrderId == null ? [...queryKeys.workOrders.all, "mediaPolicy", "none"] : queryKeys.workOrders.mediaPolicy(workOrderId), queryFn: () => workOrdersMediaUploadApi.getMediaPolicy(workOrderId as string | number), enabled: enabled && workOrderId != null, staleTime: 15_000, retry: false, }); }