export interface Sido { adstDstrCd: string; sido: string; bsnmCd: string; } export interface SearchCondition { yearList: string[]; sidoList: Sido[]; } export interface Sgg { adstDstrCd: string; gugun: string; bsnmCd: string; } export interface cancelSubmitRequest { statsYr: string; ctpvNm: string; sggNm: string; sewerBzmnCd: string; statsCd: string; mdfrId: string; } export interface cancelSubmitResponse { status: string; message?: string; } export interface ApiResponse { status: string; data: T; message?: string; } /** 하수 입력/보급률 등 조회 `data.statusInfo` 공통 (LAE 제출·담당자 정보) */ export interface SewerageStatusInfo { laePicNm: string | null; laePicTelNo: string | null; laeKbrdrDeptNm: string | null; laeKbrdrJbgdNm: string | null; laeIdfrNm: string | null; laeIdfrTelNo: string | null; laeIdfrDeptNm: string | null; laeIdfrJbgdNm: string | null; laeSbmsnSttsCd: string | null; laeSbmsnYmd: string | null; rjctOpnnCn: string | null; } export interface ImrRequest { user_id?: string; sewer_bzmn_cd: string; stats_cd: string; stats_yr: string; lae_sbmsn_stts_cd: string; gen_verify_stts_cd?: string; } export interface ImrResponse { anls_sn: number; job_id: string; total_otlr_cnt: number; status_code: string; error_msg: string; processing_time_ms: number; job_prog: number; queue_position: number; } export interface ImrStatusResponse { job_id: string; anls_sn: number; status: string; job_prog: number; total_otlr_cnt: number; total_nml_cnt: number; total_excl_cnt: number; processing_time_ms: number; error_msg: string; queue_position: string; } export interface VerificationResultListRequest { statsYr: string; sewerBzmnCd?: string; ctpvNm?: string; sggNm?: string; statsCd?: string; /** 검증 방법 코드 (예: IMR) */ vrfcMthdCd?: string; /** 처리여부 코드 목록, 콤마 구분 */ prcsYnList?: string; pbcpAprvYn?: string; page?: number; size?: number; } /** 검증 결과 리포트 목록 한 행 (`verifyResultList` 원소) */ export interface VerificationResultReportItem { statsYr: string; statsCd: string; statsNm: string; sewerBzmnCd: string; ctpvNm: string; sggNm: string; admdstNm: string; vrfcSn: number; vrfcMthdCd: string; vrfcMthdNm: string; vrfcTrgtNm: string; regDt: string; rsnExpln: string; nowVlCn: string; compVlCn: string | null; prcsYn: string; prcsOpnnExpln: string | null; prcrId: string | null; rjctOpnnCn: string | null; pbcpAprvYn: string; mdfrId: string | null; mdfcnDt: string; } export interface VerificationResultListPageInfo { totalElements: number; totalPages: number; currentPage: number; size: number; } export interface VerificationResultListData { verifyResultList: VerificationResultReportItem[]; pageInfo: VerificationResultListPageInfo; } /** 검증 결과 리포트 조회 API 응답 */ export interface VerificationResultListResponse { status: string; message?: string; data?: VerificationResultListData; } export interface SubmitExceptionRequest { statsYr: string; statsCd: string; ctpvNm: string; sggNm: string; sewerBzmnCd: string; userId: string; superAdmin?: string; laePicNm: string; laePicTelNo: string; laeKbrdrDeptNm: string; laeKbrdrJbgdNm: string; laeIdfrNm: string; laeIdfrTelNo: string; laeIdfrDeptNm: string; laeIdfrJbgdNm: string } export interface SubmitExceptionResponse { status: string; message?: string; } export interface StatisticsLog { statsLogSn?: number; menuNm?: string; tabNm?: string; tblNm?: string; statsDataChgComCd?: string; rgtrId?: string; regDt?: string; } export interface StatisticsLogRequest { page: number; size: number; statsCd?: string; startDate?: string; endDate?: string; /** 시도명 */ ctpvNm?: string; /** 시군구명 */ sggNm?: string; sewerBzmnCd?: string; /** 요청 기능(통계 데이터 변경 공통코드) */ statsDataChgComCd?: string; } export interface StatisticsLogResponse { status: string; message?: string; data?: { statsLogList: StatisticsLog[]; pageInfo: { totalElements: number; totalPages: number; currentPage: number; size: number; }; }; } /** * 통계 로그 데이터 상세조회 `data[]` 행. * `rmrk`, `sggNm`, `admdstCd`, `admdstNm`는 공통이고, 그 외 키는 통계/탭에 따라 가변. */ export interface StatisticsLogDetailRow { rmrk: string; sggNm: string; admdstCd: string; admdstNm: string; [key: string]: string | number | null | undefined; } export interface StatisticsLogDetailResponse { status: string; message?: string; data?: StatisticsLogDetailRow[]; } export interface getReviewOpinionDetailRequest { statsYr: string; sewerBzmnCd: string; statsCd: string; } export interface ReviewOpinionDetailItem { statsYr: string; sewerBzmnCd: string; statsCd: string; splmntOpnnCn: string | null; wrterOpnnCn: string | null; } export interface getReviewOpinionDetailResponse { status: string; message?: string; data?: ReviewOpinionDetailItem[]; } /** 검토의견 저장 API body */ export interface ReviewOpinionSaveRequest { statsYr: string; sewerBzmnCd: string; statsCd: string; splmntOpnnCn: string; wrterOpnnCn: string; mdfrId: string; } export interface ReviewOpinionSaveResponse { status: string; message?: string; } export interface ReviewReturnSaveRequest { statsYr: string; sewerBzmnCd: string; statsCd: string; rjctOpnnCn: string; mdfrId: string; } export interface ReviewReturnSaveResponse { status: string; message?: string; } export interface ReviewSubmitRequest { statsYr: string; sewerBzmnCd: string; statsCd: string; mdfrId: string; } export interface ReviewSubmitResponse { status: string; message?: string; } export interface SubmitVerifyExceptionItem { vrfcSn: number; prcsOpnnExpln: string; } export interface SubmitVerifyExceptionRequest { sewerBzmnCd: string; statsYr: string; statsCd: string; userId: string; exceptionList: SubmitVerifyExceptionItem[]; } export interface SubmitVerifyExceptionResponse { status: string; message?: string; } export interface StatisticsService { getSidoList(params?: { instSeCd?: string }): Promise>; getSggList(sidoName: string, params?: { instSeCd?: string; gugunSkipYn?: "Y" | "N" }): Promise>; getSggAllList(sidoName: string, params?: { instSeCd?: string; gugunSkipYn?: "Y" | "N" }): Promise>; cancelSubmit(param: cancelSubmitRequest): Promise; callImrService(param: ImrRequest): Promise; submitException(param: SubmitExceptionRequest): Promise; getLogList(param: StatisticsLogRequest): Promise; getLogDetail(param: string): Promise; saveReviewOpinion(param: ReviewOpinionSaveRequest): Promise; getReviewOpinionDetail(param: getReviewOpinionDetailRequest): Promise; saveReviewReturn(param: ReviewReturnSaveRequest): Promise; submitReview(param: ReviewSubmitRequest): Promise; getVerificationResultList(param: VerificationResultListRequest): Promise; getImrStatus(param: string): Promise; SubmitVerifyException(param: SubmitVerifyExceptionRequest): Promise; }