Files
frontend/apps/st/src/entities/statistics/model/verification-target-management-interface.ts
T

106 lines
4.6 KiB
TypeScript

import type { PageableList } from "@/shared/model";
import type { ApiResponse } from "./statistics-interface";
// 검증 대상 관리 응답 DTO
export interface VerificationTargetManagementResponse {
vrfcTrgtSn: number; // 검증 대상 일련번호
vrfcMthdCd: string; // 검증 방법 코드
vrfcMthdNm: string; // 검증 방법 명
statsCd: string; // 통계 코드
statsNm: string; // 통계 항목 명
schmNm: string; // 스키마 명
tblNm: string; // 테이블 명
colNm: string; // 컬럼 명
pkColNm: string; // pk 컬럼 명
ipcrCntVl: number | null; // 중요도 개수 값 (mu)
pctlCrtrVl: number | null; // 백분위 기준 값 (percentile)
scopCntCntVl: number | null; // 범위 조정 개수 값 (A)
thrsCntVl: number | null; // 임계 개수 값 (C)
useYn: string; // 사용 여부
vrfcTrgtNm: string; // 검증대상명
rgtr: string | null; // 등록자 ID
regDt: string | null; // 등록 일시
mdfr: string | null; // 수정자 ID
rgtrNm: string | null; // 등록자명
mdfrNm: string | null; // 수정자명
mdfcn: string | null; // 수정 일시
}
// 검증 대상 관리 검색 DTO
export interface VerificationTargetManagementSearchParams {
vrfcMthdCd?: string; // 검증 방법 코드
statsCd?: string; // 통계 코드
tblNm?: string; // 테이블 명
colNm?: string; // 컬럼 명
vrfcTrgtNm?: string; // 검증대상명
useYn?: string; // 사용 여부
page?: number; // 페이지 번호 (0부터 시작)
size?: number; // 페이지 크기
sort?: string; // 정렬 조건 (예: "vrfcTrgtSn,desc")
}
// 검증 대상 관리 저장 요청 DTO
export interface VerificationTargetManagementSaveRequest {
vrfcMthdCd: string; // 검증 방법 코드 (필수, 최대 10자)
statsCd: string; // 통계 코드 (필수, 최대 10자)
schmNm: string; // 스키마 명 (필수, 최대 150자)
tblNm: string; // 테이블 명 (필수, 최대 150자)
colNm: string; // 컬럼 명 (필수, 최대 150자)
pkColNm: string; // pk 컬럼 명 (필수, 최대 150자)
ipcrCntVl?: number | null; // 중요도 개수 값 (mu)
pctlCrtrVl?: number | null; // 백분위 기준 값 (percentile)
scopCntCntVl?: number | null; // 범위 조정 개수 값 (A)
thrsCntVl?: number | null; // 임계 개수 값 (C)
useYn?: string; // 사용 여부 (Y/N, 최대 1자)
vrfcTrgtNm?: string; // 검증대상명 (최대 150자)
}
// 검증 대상 관리 수정 요청 DTO
export interface VerificationTargetManagementUpdateRequest {
vrfcMthdCd: string; // 검증 방법 코드 (필수, 최대 10자)
statsCd: string; // 통계 코드 (필수, 최대 10자)
schmNm: string; // 스키마 명 (필수, 최대 150자)
tblNm: string; // 테이블 명 (필수, 최대 150자)
colNm: string; // 컬럼 명 (필수, 최대 150자)
pkColNm: string; // pk 컬럼 명 (필수, 최대 150자)
ipcrCntVl?: number | null; // 중요도 개수 값 (mu)
pctlCrtrVl?: number | null; // 백분위 기준 값 (percentile)
scopCntCntVl?: number | null; // 범위 조정 개수 값 (A)
thrsCntVl?: number | null; // 임계 개수 값 (C)
useYn?: string; // 사용 여부 (Y/N, 최대 1자)
vrfcTrgtNm?: string; // 검증대상명 (최대 150자)
}
// API 응답 타입
export type VerificationTargetManagementListApiResponse =
PageableList<VerificationTargetManagementResponse>;
export type VerificationTargetManagementDetailApiResponse =
ApiResponse<VerificationTargetManagementResponse>;
export type VerificationTargetManagementSaveApiResponse = ApiResponse<number>;
export type VerificationTargetManagementUpdateApiResponse = ApiResponse<number>;
export type VerificationTargetManagementDeleteApiResponse = ApiResponse<number>;
// 서비스 인터페이스
export interface VerificationTargetManagementService {
getVerificationTargetManagementList(
params: VerificationTargetManagementSearchParams,
): Promise<VerificationTargetManagementListApiResponse>;
getVerificationTargetManagementById(
vrfcTrgtSn: number,
): Promise<VerificationTargetManagementDetailApiResponse>;
saveVerificationTargetManagement(
request: VerificationTargetManagementSaveRequest,
): Promise<VerificationTargetManagementSaveApiResponse>;
updateVerificationTargetManagement(
vrfcTrgtSn: number,
request: VerificationTargetManagementUpdateRequest,
): Promise<VerificationTargetManagementUpdateApiResponse>;
deleteVerificationTargetManagement(
vrfcTrgtSn: number,
): Promise<VerificationTargetManagementDeleteApiResponse>;
}