/**
 * @description
 * 해양 기상 탭의 도메인 인터페이스 모음. KHOA 해황예보도·조위관측소와
 * 기상청 단기예보·해상예보 API 응답, 그리고 여러 원천을 통합한 프런트
 * 스냅샷 모델(WeatherSnapshot: 바람/파도/수온/기압/천문/조석 등)을 정의한다.
 *
 * @author dnlee (dnlee@gcsc.co.kr)
 */

/** 해양 기상 — KHOA 해황예보도 API 응답 (예보 이미지 메타) */
export interface OceanForecastData {
  imgFileNm: string;
  imgFilePath: string;
  ofcBrnchId: string;
  ofcBrnchNm: string;
  ofcFrcstTm: string;
  ofcFrcstYmd: string;
}

/** 해양 기상 — KHOA 조위관측소 최신 관측 (수온·기압·풍속·유속·조위) */
export interface RecentObservation {
  water_temp: number | null;
  air_temp: number | null;
  air_pres: number | null;
  wind_dir: number | null;
  wind_speed: number | null;
  current_dir: number | null;
  current_speed: number | null;
  tide_level: number | null;
}

/** 해양 기상 — 기상청 단기예보 API 응답 (기온·풍속·파고·강수·습도) */
export interface WeatherForecastData {
  baseDate: string;
  baseTime: string;
  fcstDate: string;
  fcstTime: string;
  temperature: number;
  windSpeed: number;
  windDirection: number;
  waveHeight: number;
  precipitation: number;
  humidity: number;
}

/** 해양 기상 — 기상청 해상예보 API 응답 (해역별 파고·풍속·수온) */
export interface MarineWeatherData {
  regId: string;
  regName: string;
  waveHeight: number;
  windSpeed: number;
  windDirection: string;
  temperature: number;
}

/** 해양 기상 — 통합 기상 스냅샷 (여러 API 원천을 프런트에서 통합한 모델) */
export interface WeatherSnapshot {
  stationName: string;
  capturedAt: string;
  wind: {
    speed: number;
    direction: number;
    directionLabel: string;
    speed_1k: number;
    speed_3k: number;
  };
  wave: {
    height: number;
    maxHeight: number;
    period: number;
    direction: string;
  };
  temperature: {
    current: number;
    feelsLike: number;
  };
  pressure: number;
  visibility: number;
  salinity: number;
  astronomy?: {
    sunrise: string;
    sunset: string;
    moonrise: string;
    moonset: string;
    moonPhase: string;
    tidalRange: number;
  };
  alert?: string;
  forecast?: Array<{
    time: string;
    icon: string;
    temperature: number;
    windSpeed: number;
  }>;
}
