66 lines
2.0 KiB
TypeScript
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),
|
|
});
|
|
}
|