- Board: 매뉴얼 CRUD + 첨부파일 API (012_board_ext.sql) - HNS: 분석 CRUD 5개 API (013_hns_analysis.sql) - Prediction: 분석/역추적/오일펜스 7개 API (014_prediction.sql) - Aerial: 미디어/CCTV/위성 6개 API + PostGIS (015_aerial.sql) - Rescue: 구난 작전/시나리오 3개 API + JSONB (016_rescue.sql) - backtrackMockData.ts 삭제 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
73 lines
2.1 KiB
TypeScript
73 lines
2.1 KiB
TypeScript
import { api } from '@common/services/api';
|
|
|
|
// ============================================================
|
|
// 구조 시나리오 API
|
|
// ============================================================
|
|
|
|
// === RESCUE_OPS ===
|
|
export interface RescueOpsItem {
|
|
rescueOpsSn: number;
|
|
acdntSn: number | null;
|
|
opsCd: string;
|
|
acdntTpCd: string;
|
|
vesselNm: string;
|
|
commanderNm: string | null;
|
|
lon: number | null;
|
|
lat: number | null;
|
|
locDc: string | null;
|
|
depthM: number | null;
|
|
currentDc: string | null;
|
|
gmM: number | null;
|
|
listDeg: number | null;
|
|
trimM: number | null;
|
|
buoyancyPct: number | null;
|
|
oilRateLpm: number | null;
|
|
bmRatioPct: number | null;
|
|
totalCrew: number | null;
|
|
survivors: number | null;
|
|
missing: number | null;
|
|
hydroData: Record<string, unknown> | null;
|
|
gmdssData: Record<string, unknown> | null;
|
|
sttsCd: string;
|
|
regDtm: string;
|
|
}
|
|
|
|
// === RESCUE_SCENARIO ===
|
|
export interface RescueScenarioItem {
|
|
scenarioSn: number;
|
|
rescueOpsSn: number;
|
|
timeStep: string;
|
|
scenarioDtm: string | null;
|
|
svrtCd: string; // CRITICAL/HIGH/MEDIUM/RESOLVED
|
|
gmM: number | null;
|
|
listDeg: number | null;
|
|
trimM: number | null;
|
|
buoyancyPct: number | null;
|
|
oilRateLpm: number | null;
|
|
bmRatioPct: number | null;
|
|
description: string | null;
|
|
compartments: Array<{ name: string; status: string; color: string }> | null;
|
|
assessment: Array<{ label: string; value: string; color: string }> | null;
|
|
actions: Array<{ time: string; text: string; color: string }> | null;
|
|
sortOrd: number;
|
|
}
|
|
|
|
export async function fetchRescueOps(params?: {
|
|
sttsCd?: string;
|
|
acdntTpCd?: string;
|
|
search?: string;
|
|
}): Promise<RescueOpsItem[]> {
|
|
const response = await api.get<RescueOpsItem[]>('/rescue/ops', { params });
|
|
return response.data;
|
|
}
|
|
|
|
export async function fetchRescueOpsDetail(sn: number): Promise<RescueOpsItem> {
|
|
const response = await api.get<RescueOpsItem>(`/rescue/ops/${sn}`);
|
|
return response.data;
|
|
}
|
|
|
|
export async function fetchRescueScenarios(rescueOpsSn: number): Promise<RescueScenarioItem[]> {
|
|
const response = await api.get<RescueScenarioItem[]>(`/rescue/ops/${rescueOpsSn}/scenarios`);
|
|
return response.data;
|
|
}
|