65 lines
1.6 KiB
TypeScript
65 lines
1.6 KiB
TypeScript
import type { PageableList } from "@/shared/model";
|
|
|
|
export interface AnalysisRequestPayload {
|
|
dataset?: string;
|
|
yearOld: number;
|
|
yearNew: number;
|
|
mu: number;
|
|
a: number;
|
|
c: number;
|
|
percentile: number;
|
|
sido?: string;
|
|
sigungu?: string;
|
|
vrfcMthdCd?: string;
|
|
allVerifyYn?: "Y" | "N";
|
|
}
|
|
|
|
export interface AnalysisResponseDto {
|
|
jobId: string;
|
|
status: string;
|
|
message: string;
|
|
queuePosition: number;
|
|
createdAt: string;
|
|
anlsSn: number;
|
|
}
|
|
|
|
export interface JobStatusDto {
|
|
jobId: string;
|
|
status: string;
|
|
message: string;
|
|
queuePosition: number;
|
|
progress: number;
|
|
startedAt: string | null;
|
|
completedAt: string | null;
|
|
error: string | null;
|
|
anlsSn: number | null;
|
|
processingTimeMs: number | null;
|
|
}
|
|
|
|
export interface AnalysisSummaryDto {
|
|
// 요약 필드는 Python 분석 서비스 스키마에 따라 확장
|
|
[key: string]: unknown;
|
|
}
|
|
|
|
export interface OutlierRecordDto {
|
|
// 상세 구조는 Python 분석 서비스 응답에 맞춰 필요 시 확장
|
|
[key: string]: unknown;
|
|
}
|
|
|
|
export interface AnalysisResultDto {
|
|
jobId: string;
|
|
status: string;
|
|
createdAt: string;
|
|
completedAt: string | null;
|
|
summary: AnalysisSummaryDto | null;
|
|
multiSummaries: Record<string, AnalysisSummaryDto> | null;
|
|
outliers: OutlierRecordDto[];
|
|
results: OutlierRecordDto[];
|
|
totalCount: number;
|
|
cached: boolean;
|
|
processingTimeMs: number;
|
|
anlsSn: number;
|
|
}
|
|
|
|
export type AnalysisHistoryListApiResponse = PageableList<AnalysisResultDto>;
|