/**
 * 선박 아이콘 유틸리티
 *
 * 선박 종류 코드와 항해/정박 상태에 따라 적절한 아이콘을 제공
 */

import { ICON_MAPPING_KIND_MOVING, ICON_MAPPING_KIND_STOPPING } from '../../types/constants';

/**
 * 선박 종류 코드와 항해 상태로 아이콘 이름 가져오기
 *
 * @param {string} shipKindCode 선박 종류 코드 (000020-000028)
 * @param {boolean} [isMoving=true] 항해 중 여부
 * @returns {string} 아이콘 매핑 키
 */
export function getShipIconUrl(shipKindCode, isMoving = true) {
  const iconMapping = isMoving
    ? ICON_MAPPING_KIND_MOVING
    : ICON_MAPPING_KIND_STOPPING;

  return iconMapping[shipKindCode] || iconMapping['000027'];
}

/**
 * 속도 기반 선박 아이콘 가져오기
 * 0.5 knots를 기준으로 항해 중 여부를 결정
 *
 * @param {string} shipKindCode 선박 종류 코드
 * @param {number} [speed=0] 선박 속도 (knots)
 * @returns {string} 아이콘 매핑 키
 */
export function getV2ShipIconUrl(shipKindCode, speed = 0) {
  const isMoving = speed > 0.5;
  return getShipIconUrl(shipKindCode, isMoving);
}

/**
 * 선박 종류 코드를 한글 이름으로 변환
 *
 * @param {string} shipKindCode 선박 종류 코드
 * @returns {string} 선박 타입 한글 이름
 */
export function getShipKindName(shipKindCode) {
  const kindNames = {
    '000020': '어선',
    '000021': '함정',
    '000022': '여객선',
    '000023': '화물선',
    '000024': '유조선',
    '000025': '관공선',
    '000027': '기타',
    '000028': '부이',
  };

  return kindNames[shipKindCode] || '기타';
}

/**
 * 신호 소스 코드를 이름으로 변환
 *
 * @param {string} signalSourceCode 신호 소스 코드
 * @returns {string} 신호 소스 이름
 */
export function getSignalSourceName(signalSourceCode) {
  const sourceNames = {
    '000001': 'AIS',
    '000002': 'E-NAV',
    '000003': 'V-PASS',
    '000004': 'VTS-AIS',
    '000005': 'VTS-RADAR',
    '000016': 'D-MF/HF',
  };

  return sourceNames[signalSourceCode] || signalSourceCode;
}
