shoc-frontend-new/src/domain/work-orders/use-cases/use-work-order-media-policy.ts
2026-09-23 04:17:18 -03:00

24 lines
977 B
TypeScript

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<MediaUploadPolicy, Error> {
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,
});
}