import { api } from '@common/services/api'; export interface PredictionAnalysis { acdntSn: number; acdntNm: string; occurredAt: string; analysisDate: string; requestor: string; duration: string; oilType: string; volume: number | null; location: string; lat: number | null; lon: number | null; kospsStatus: string; poseidonStatus: string; opendriftStatus: string; backtrackStatus: string; analyst: string; officeName: string; } export interface PredictionDetail { acdnt: { acdntSn: number; acdntNm: string; occurredAt: string; lat: number | null; lon: number | null; location: string; analyst: string; officeName: string; }; spill: { oilType: string; volume: number | null; unit: string; fcstHr: number | null; } | null; vessels: Array<{ vesselInfoSn: number; imoNo: string; vesselNm: string; vesselTp: string; loaM: number | null; breadthM: number | null; draftM: number | null; gt: number | null; dwt: number | null; builtYr: number | null; flagCd: string; callsign: string; engineDc: string; insuranceData: unknown; }>; weather: Array<{ weatherDtm: string; windSpd: number | null; windDir: string | null; waveHgt: number | null; currentSpd: number | null; currentDir: string | null; temp: number | null; }>; } export interface BacktrackResult { backtrackSn: number; acdntSn: number; estSpilDtm: string | null; anlysRange: string | null; lon: number | null; lat: number | null; srchRadiusNm: number | null; totalVessels: number | null; execSttsCd: string; rsltData: Record | null; } export const fetchPredictionAnalyses = async (params?: { search?: string; }): Promise => { const response = await api.get('/prediction/analyses', { params }); return response.data; }; export const fetchPredictionDetail = async (acdntSn: number): Promise => { const response = await api.get(`/prediction/analyses/${acdntSn}`); return response.data; }; export const fetchBacktrack = async (sn: number): Promise => { const response = await api.get(`/prediction/backtrack/${sn}`); return response.data; }; export const fetchBacktrackByAcdnt = async ( acdntSn: number, ): Promise => { const response = await api.get('/prediction/backtrack', { params: { acdntSn }, }); return response.data.length > 0 ? response.data[0] : null; }; export const createBacktrack = async (input: { acdntSn: number; lon: number; lat: number; srchRadiusNm?: number; anlysRange?: string; }): Promise<{ backtrackSn: number }> => { const response = await api.post<{ backtrackSn: number }>('/prediction/backtrack', input); return response.data; };