Files
frontend/apps/as/src/entities/dc/api/queries.ts
T

66 lines
2.0 KiB
TypeScript

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