Files
frontend/apps/st/src/entities/statistics/model/input/statistics-public-sewage-facility-input-interface.ts
T

292 lines
8.3 KiB
TypeScript

import type { SewerageStatusInfo } from "../statistics-interface";
export interface PublicSewageFacilityRequestParams {
ctpvNm?: string;
sggNm?: string;
sewerBzmnCd?: string;
fcltNm?: string;
statsYr?: string;
mode?: string;
}
export interface PublicSewageFacilityVerifyResultItem {
vrfcCd: string;
rsnExpln: string;
nowVlCn?: string;
compVlCn?: string;
}
/** 필드명 -> 검증 결과 배열 */
export type PublicSewageFacilityVerificationResult = Record<
string,
PublicSewageFacilityVerifyResultItem[]
>;
export interface PublicSewageFacilityCommonInfo {
statsYr: string;
ctpvNm: string;
sewerBzmnCd: string;
statsCd: string;
verificationResult?: PublicSewageFacilityVerificationResult | null;
}
export interface PublicSewageFacilityItem {
admdstCd: string;
sggNm: string;
admdstNm: string;
fcltSn: number;
swtrmtFcltCd: string;
swtrmtFcltNm: string;
fcltPstnCn: string | null;
prcsFcltCpct: number;
prcsFcltPhysCpct: number;
prcsFcltBoilCpct: number;
prcsFcltAltdCpct: number;
inflwSwageQnt: number;
inflwSwagePhysQnt: number;
inflwSwageBoilQnt: number;
inflwSwageAltdQnt: number;
prcsQnt: number;
prcsPhysCpct: number;
prcsBoilCpct: number;
prcsAltdCpct: number;
inflwBodVl: number;
dschgBodVl: number;
inflwTocQnt: number;
dschgTocQnt: number;
inflwSsQnt: number;
dschgSsQnt: number;
inflwTnVl: number;
dschgTnVl: number;
inflwTpVl: number;
dschgTpVl: number;
inflwGrssClfgVl: number;
dschgGrssClfgVl: number;
prcsRt: number;
prcsLodQnt: number;
prcsMthdExpln: string | null;
wholHmnQnt: number;
wholLvstQnt: number;
wholEfntQnt: number;
wholEtcQnt: number;
telNo: string | null;
cmptnStrtYmd: string | null;
oprtngStrtYmd: string | null;
wholBizVl: number;
eflntDsnfMthdExpln: string | null;
wtsysNm: string | null;
trbtrNm: string | null;
dtlUnitZoneCn: string | null;
rgnSeNm: string | null;
msirbCn: string | null;
goalWqNo: string | null;
engySrlneRt: number;
engyItslfPrdctnQnt: number;
anlEngyWholUseQnt: number;
anlElpwrUseQnt: number;
itslfEngyUseQnt: number;
swtrmtEmsnQnt: number;
operMnbdCn: string | null;
prxyBzentyNmCn: string | null;
cnsgnCstVl: number;
prxyCtrtCn: string | null;
intgPrcsFcltCn: string | null;
wholNope: number;
sftyAcdntEvntcsCnt: number;
rmrk: string | null;
verificationResult?: PublicSewageFacilityVerificationResult | null;
}
export interface PublicSewageFacilityResponseData {
statusInfo: SewerageStatusInfo;
commonInfo: PublicSewageFacilityCommonInfo;
publicSewageFacilityList: PublicSewageFacilityItem[];
}
export interface PublicSewageFacilityResponse {
status: string;
message?: string;
data: PublicSewageFacilityResponseData;
}
/** ST00060002 지자체별 전체시설 목록 항목 */
export interface PublicSewageMainFacilityItem {
admdstCd: string;
sggNm: string | null;
admdstNm: string;
isMainYn: string;
fcltSn: string;
swtrmtFcltCd: string;
swtrmtFcltNm: string;
fcltPstnCn: string | null;
prxyBzentyNmCn: string | null;
cnsgnCstVl: number;
prxyCtrtCn: string | null;
wholNope: number;
}
/** ST00060002 조회 응답 data */
export interface PublicSewageMainFacilityResponseData {
statusInfo: SewerageStatusInfo;
commonInfo: PublicSewageFacilityCommonInfo;
mainFacilityList: PublicSewageMainFacilityItem[];
}
/** ST00060002 조회 API 응답 */
export interface PublicSewageMainFacilityResponse {
status: string;
message?: string;
data: PublicSewageMainFacilityResponseData;
}
/** ST00060002 메인시설 클릭 시 우측 매핑대상 조회 요청 */
export interface PublicSewageMappingTargetsRequestParams {
sewerBzmnCd: string;
ctpvNm: string;
sggNm: string;
statsYr: string;
fcltSn: string;
}
/** ST00060002 메인시설 클릭 시 우측 매핑대상 조회 항목 */
export interface PublicSewageMappingTargetItem {
fcltSn: string;
admdstCd?: string;
admdstNm: string;
swtrmtFcltCd: string;
swtrmtFcltNm: string;
fcltPstnCn: string;
mappedYn: string;
mainFcltSn: string;
isMainYn: string;
}
/** ST00060002 메인시설 클릭 시 우측 매핑대상 조회 응답 */
export interface PublicSewageMappingTargetsResponse {
status: string;
message?: string;
data: PublicSewageMappingTargetItem[];
}
/** ST00060002 중심처리시설 매핑 저장 — saveList 항목 */
export interface PublicSewageMainFacilityMappingSaveItem {
fcltSn: string;
admdstCd: string;
admdstNm: string;
swtrmtFcltCd: string;
swtrmtFcltNm: string;
isMainYn: string;
}
/** ST00060002 중심처리시설 매핑 저장 API 요청 */
export interface PublicSewageMainFacilityMappingSaveRequest {
statsYr: string;
sewerBzmnCd: string;
/** 좌측에서 선택한 중심 처리 시설의 행정구역 */
admdstCd: string;
admdstNm: string;
mainFcltSn: string;
mainFcltNm: string;
/** 매핑 추가(saveList 있음) 시 입력. 매핑 삭제만 할 때는 요청에서 생략 가능 */
prxyBzentyNmCn?: string;
cnsgnCstVl?: number;
wholNope?: number;
prxyCtrtCn?: string;
userId: string;
saveList: PublicSewageMainFacilityMappingSaveItem[];
deleteList: string[];
}
export interface PublicSewageMainFacilityMappingSaveResponse {
status: string;
message?: string;
data?: string;
}
/** ST00060001 공공하수처리시설 저장 — saveList 항목 */
export interface PublicSewageFacilitySaveItem {
admdstCd: string;
admdstNm: string;
swtrmtFcltCd: string;
swtrmtFcltNm: string;
fcltSn: string;
fcltPstnCn: string | null;
inflwSwagePhysQnt: number;
inflwSwageBoilQnt: number;
inflwSwageAltdQnt: number;
prcsPhysCpct: number;
prcsBoilCpct: number;
prcsAltdCpct: number;
prxyCtrtCn: string | null;
sftyAcdntEvntcsCnt: number;
rmrk: string | null;
}
/** ST00060001 공공하수처리시설 저장 API 요청 */
export interface PublicSewageFacilitySaveRequest {
statsYr: string;
ctpvNm: string;
sggNm: string;
sewerBzmnCd: string;
userId: string;
superAdmin?: string;
/**
* 저장 요청에서 "해당없음" 처리 여부가 함께 전달되는 경우를 고려합니다.
* (백엔드 스펙에 따라 필수 여부는 달라질 수 있어 optional로 둡니다.)
*/
noApplicable?: boolean;
saveList: PublicSewageFacilitySaveItem[];
}
export interface PublicSewageFacilitySaveResponse {
data?: string;
message?: string;
status: string;
}
/** 공공하수처리시설 입력 제출 공통 본문 (`submitList` 제외) */
export interface PublicSewageFacilitySubmitRequestBase {
statsYr: string;
ctpvNm: string;
sggNm: string;
sewerBzmnCd: string;
userId: string;
noApplicable?: boolean;
laePicNm: string;
laePicTelNo: string;
laeKbrdrDeptNm: string;
laeKbrdrJbgdNm: string;
laeIdfrNm: string;
laeIdfrTelNo: string;
laeIdfrDeptNm: string;
laeIdfrJbgdNm: string;
}
/** ST00060001 공공하수처리시설 제출 API 요청 (`submitList` 행은 저장과 동일) */
export interface PublicSewageFacilitySubmitRequest extends PublicSewageFacilitySubmitRequestBase {
submitList: PublicSewageFacilitySaveItem[];
}
export interface PublicSewageFacilitySubmitResponse {
data: {
finalStatus: string;
nvpassed: boolean;
}
message?: string;
status: string;
}
export interface StatisticsInputPublicSewageFacilityService {
getPublicSewageFacility(param: PublicSewageFacilityRequestParams): Promise<PublicSewageFacilityResponse>;
getPublicSewageMainFacility(param: PublicSewageFacilityRequestParams): Promise<PublicSewageMainFacilityResponse>;
getMappingTargets(param: PublicSewageMappingTargetsRequestParams): Promise<PublicSewageMappingTargetsResponse>;
saveMainFacilityMapping(param: PublicSewageMainFacilityMappingSaveRequest): Promise<PublicSewageMainFacilityMappingSaveResponse>;
savePublicSewageFacility(param: PublicSewageFacilitySaveRequest): Promise<PublicSewageFacilitySaveResponse>;
submitPublicSewageFacility(param: PublicSewageFacilitySubmitRequest): Promise<PublicSewageFacilitySubmitResponse>;
}