Files
frontend/apps/as/src/entities/dc/model/dc-interface.ts
T

116 lines
3.2 KiB
TypeScript

export interface NowDmgMtncGnsvySearchDto {
swtrmtFcltCd?: string;
ctpvNm?: string;
sggNm?: string;
targetYear?: string;
}
export interface LvNowDmgMtncGnsvySearchDto {
level?: string;
ctpvNm?: string;
sggNm?: string;
gnsvyYr?: string;
}
export interface ClsfSystmParamsDto {
clsfSystmNm?: string;
upClsfSystmSn?: string;
}
export interface FileParamsDto {
sort?: string;
clsfSystmSn?: string;
vetPrcsYn?: string;
}
export interface FileDownloadParamsDto {
filePath?: string;
fileName?: string;
}
type NullableNumber = number | null;
type NullableString = string | null;
/** 현재·단계별(Dt/Dc) 공통 지표 필드 */
interface NowDmgMtncGnsvyMetricFields {
planYr?: NullableString;
swtrmtPpltnCnt?: NullableNumber;
natrSwtrmtPpltnCnt?: NullableNumber;
scilSwtrmtPpltnCnt?: NullableNumber;
swtrmtZoneArea?: NullableNumber;
wtrUsqtyOrgnUnit?: NullableNumber;
drtwSwtcRt?: NullableNumber;
flctnLodRt?: NullableNumber;
drtwOrgnUnit?: NullableNumber;
planSwageQntSum?: NullableNumber;
lvngDrtwSum?: NullableNumber;
ugwtSum?: NullableNumber;
fctryWwtSum?: NullableNumber;
toursmDrtwSum?: NullableNumber;
mtbsSum?: NullableNumber;
linkPrcsCntSum?: NullableNumber;
etcDrtwSum?: NullableNumber;
ugwtUseSum?: NullableNumber;
fcltCpctSum?: NullableNumber;
exclsMethExpln?: NullableString;
brcPplSum?: NullableNumber;
icptgPplSum?: NullableNumber;
exclnPplSum?: NullableNumber;
stofcbrSum?: NullableNumber;
pmstnSum?: NullableNumber;
simplPubSwtrmtFcltSum?: NullableNumber;
swageImpdFcltSum?: NullableNumber;
mltvFclSum?: NullableNumber;
}
type StageSuffix = "Dt1" | "Dt2" | "Dt3" | "Dt4" | "Dc1" | "Dc2" | "Dc3" | "Dc4";
type StagedMetricFields = {
[K in keyof NowDmgMtncGnsvyMetricFields as `${K & string}${StageSuffix}`]?: NowDmgMtncGnsvyMetricFields[K];
};
export interface NowDmgMtncGnsvyResponseDto
extends NowDmgMtncGnsvyMetricFields, StagedMetricFields {
swtrmtFcltCd?: NullableString;
swtrmtFcltNm?: NullableString;
gnsvyYr?: NullableString;
ctpvNm?: NullableString;
sggNm?: NullableString;
}
/**
* lvNowDmgMtncGnsvy 계층 노드.
* - level 1: ctpvNm + children(구군)
* - level 2: sggNm + children(연도)
* - level 3: gnsvyYr + children(처리시설)
* - 시설 리프: swtrmtFcltCd / swtrmtFcltNm (level 없음)
*/
export interface LvNowDmgMtncGnsvyResponseDto {
level?: number;
ctpvNm?: string;
sggNm?: string;
gnsvyYr?: string;
swtrmtFcltCd?: string;
swtrmtFcltNm?: string;
children?: LvNowDmgMtncGnsvyResponseDto[];
}
export interface ClsfSystmResponseDto {
clsfSystmSn: string;
upClsfSystmSn: string;
clsfSystmNm: string;
sortSeq: string;
droppAble: boolean;
path: string | null;
children: ClsfSystmResponseDto[];
}
export interface DcService {
getNowDmgMtncGnsvy(params: NowDmgMtncGnsvySearchDto): Promise<NowDmgMtncGnsvyResponseDto[]>;
getLvNowDmgMtncGnsvy(params: LvNowDmgMtncGnsvySearchDto): Promise<LvNowDmgMtncGnsvyResponseDto[]>;
getClsfSystm(params: ClsfSystmParamsDto): Promise<ClsfSystmResponseDto[]>;
getFile(params: FileParamsDto): Promise<unknown>;
getFilePrcs(fileSn: string): Promise<unknown>;
fileDownload(params: FileDownloadParamsDto): Promise<Blob>;
}