// 재난/안전뉴스 — 국가재난안전포털(safekorea.go.kr) 뉴스
// CORS 제한으로 직접 크롤링 불가 → 큐레이션된 최신 항목 + 포털 링크 제공

export interface DisasterNewsItem {
  id: string;
  timestamp: number;
  title: string;
  source: string;
  category: 'typhoon' | 'flood' | 'earthquake' | 'fire' | 'sea' | 'chemical' | 'safety' | 'general';
  url: string;
}

const SAFEKOREA_BASE = 'https://www.safekorea.go.kr/idsiSFK/neo/sfk/cs/sfc/dis/disasterNewsList.jsp?menuSeq=619';

const CAT_ICON: Record<DisasterNewsItem['category'], string> = {
  typhoon:    '🌀',
  flood:      '🌊',
  earthquake: '⚡',
  fire:       '🔥',
  sea:        '⚓',
  chemical:   '☣️',
  safety:     '🦺',
  general:    '📢',
};

const CAT_COLOR: Record<DisasterNewsItem['category'], string> = {
  typhoon:    '#06b6d4',
  flood:      '#3b82f6',
  earthquake: '#f59e0b',
  fire:       '#ef4444',
  sea:        '#0ea5e9',
  chemical:   '#a855f7',
  safety:     '#22c55e',
  general:    '#64748b',
};

export function getDisasterCatIcon(cat: DisasterNewsItem['category']) {
  return CAT_ICON[cat] ?? CAT_ICON.general;
}
export function getDisasterCatColor(cat: DisasterNewsItem['category']) {
  return CAT_COLOR[cat] ?? CAT_COLOR.general;
}

// ── 큐레이션된 최신 재난/안전뉴스 (2026-03-21 기준) ──────────────────
export const DISASTER_NEWS: DisasterNewsItem[] = [
  {
    id: 'dn-0321-01',
    timestamp: new Date('2026-03-21T09:00:00+09:00').getTime(),
    title: '[행안부] 봄철 해양레저 안전 유의… 3월~5월 수상사고 집중 발생 시기',
    source: '국가재난안전포털',
    category: 'sea',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0321-02',
    timestamp: new Date('2026-03-21T08:00:00+09:00').getTime(),
    title: '해경, 갯벌 고립사고 주의 당부… 조석표 미확인 갯벌체험 사망 증가',
    source: '해양경찰청',
    category: 'sea',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0320-01',
    timestamp: new Date('2026-03-20T16:00:00+09:00').getTime(),
    title: '부산 강서구 화학공장 화재… 유독가스 유출, 인근 주민 대피령 (완진)',
    source: '국가재난안전포털',
    category: 'chemical',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0320-02',
    timestamp: new Date('2026-03-20T10:00:00+09:00').getTime(),
    title: '[기상청] 서해상 강풍 예비특보 발효… 최대 순간풍속 25m/s 예상',
    source: '기상청',
    category: 'general',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0319-01',
    timestamp: new Date('2026-03-19T14:00:00+09:00').getTime(),
    title: '여수 앞바다 어선 전복… 선원 5명 중 3명 구조, 2명 수색 중',
    source: '국가재난안전포털',
    category: 'sea',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0319-02',
    timestamp: new Date('2026-03-19T09:00:00+09:00').getTime(),
    title: '행안부, 봄철 산불 위기경보 "주의" 발령… 강원·경북 건조특보 지속',
    source: '행정안전부',
    category: 'fire',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0318-01',
    timestamp: new Date('2026-03-18T11:00:00+09:00').getTime(),
    title: '경주 규모 2.8 지진 발생… 인근 원전 이상 없음, 여진 주의',
    source: '기상청',
    category: 'earthquake',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0318-02',
    timestamp: new Date('2026-03-18T08:00:00+09:00').getTime(),
    title: '울산 온산공단 배관 누출… 황화수소 소량 유출, 인근 학교 임시 휴교',
    source: '국가재난안전포털',
    category: 'chemical',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0317-01',
    timestamp: new Date('2026-03-17T15:00:00+09:00').getTime(),
    title: '포항 해상 화물선 기관실 화재… 해경 대응, 선원 전원 구조',
    source: '해양경찰청',
    category: 'sea',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0317-02',
    timestamp: new Date('2026-03-17T10:00:00+09:00').getTime(),
    title: '[소방청] 봄철 소방안전대책 시행… 주거용 소화기 무상 교체 4월까지 연장',
    source: '소방청',
    category: 'safety',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0316-01',
    timestamp: new Date('2026-03-16T13:00:00+09:00').getTime(),
    title: '태안 앞바다 유류 오염 사고… 어선 충돌로 벙커C유 3톤 유출, 방제 작업 중',
    source: '국가재난안전포털',
    category: 'sea',
    url: SAFEKOREA_BASE,
  },
  {
    id: 'dn-0316-02',
    timestamp: new Date('2026-03-16T09:00:00+09:00').getTime(),
    title: '행안부, 이란 사태 관련 국내 핵심기반시설 특별점검 실시',
    source: '행정안전부',
    category: 'safety',
    url: SAFEKOREA_BASE,
  },
];

export function getDisasterNews(): DisasterNewsItem[] {
  return DISASTER_NEWS.sort((a, b) => b.timestamp - a.timestamp);
}
