import { useQuery } from "@tanstack/react-query"; import { ENDPOINT } from "@/shared/config"; import type { ClsfSystmParamsDto, FileParamsDto, LvNowDmgMtncGnsvySearchDto, NowDmgMtncGnsvySearchDto, } from "../model/dc-interface"; import { dcService } from "./dc-service"; export const baseKey = [ENDPOINT.DC_SERVICE] as const; export function useNowDmgMtncGnsvy(params: NowDmgMtncGnsvySearchDto) { return useQuery({ queryKey: [...baseKey, "nowDmgMtncGnsvy", params], queryFn: () => dcService.getNowDmgMtncGnsvy(params), enabled: Boolean(params.swtrmtFcltCd && params.ctpvNm), }); } function isLvNowDmgMtncGnsvyEnabled(params: LvNowDmgMtncGnsvySearchDto): boolean { if (!params.level || !params.ctpvNm) return false; if (params.level === "1") return true; if (params.level === "2") return Boolean(params.sggNm); if (params.level === "3") return Boolean(params.sggNm && params.gnsvyYr); return false; } export function useLvNowDmgMtncGnsvy(params: LvNowDmgMtncGnsvySearchDto) { return useQuery({ queryKey: [...baseKey, "lvNowDmgMtncGnsvy", params], queryFn: () => dcService.getLvNowDmgMtncGnsvy(params), enabled: isLvNowDmgMtncGnsvyEnabled(params), }); } export function useClsfSystm(params: ClsfSystmParamsDto) { return useQuery({ queryKey: [...baseKey, "clsfSystm", params], queryFn: () => dcService.getClsfSystm(params), // TODO: T4 — upClsfSystmSn 점진 로드 여부 확정 후 enabled/파라미터 조정 enabled: Boolean(params.clsfSystmNm), }); } export function useFile(params: FileParamsDto) { return useQuery({ queryKey: [...baseKey, "file", params], queryFn: () => dcService.getFile(params), // TODO: T2 — getFile Response DTO 확정 후 타입 교체 enabled: Boolean(params.clsfSystmSn), }); } export function useFilePrcs(fileSn: string) { return useQuery({ queryKey: [...baseKey, "filePrcs", fileSn], queryFn: () => dcService.getFilePrcs(fileSn), // TODO: T2 — getFilePrcs Response DTO 확정 후 타입 교체 enabled: Boolean(fileSn), }); }