-- ============================================================
-- 022_map_base.sql — 지도 백데이터 관리 테이블
-- ============================================================
-- 관리자가 등록한 지도 유형(S-57, S-101, 3D 등)을 DB로 관리하며,
-- USE_YN 으로 활성/비활성을 제어해 TopBar 햄버거 메뉴 노출을 조정한다.
-- ============================================================

SET search_path TO wing;

-- ============================================================
-- 1. 지도 백데이터 마스터
-- ============================================================
CREATE TABLE IF NOT EXISTS MAP_BASE_DATA (
  MAP_SN       SERIAL PRIMARY KEY,
  MAP_KEY      VARCHAR(30)  NOT NULL UNIQUE,  -- 지도 식별 키 (s57, s101, threeD, satellite 등)
  MAP_NM       VARCHAR(100) NOT NULL,         -- 지도 표시명 (예: S-57 전자해도)
  MAP_LEVEL_CD VARCHAR(20),                   -- 지도 레벨 코드: S-52 | S-57 | S-101 | 3D | SAT | 기타
  MAP_SRC      TEXT,                          -- 타일 URL 또는 파일 경로
  MAP_DC       TEXT,                          -- 상세 설명
  USE_YN       CHAR(1) DEFAULT 'Y',           -- 사용 여부: Y(사용중) / N(미사용)
  DEL_YN       CHAR(1) DEFAULT 'N',           -- 삭제 여부: Y(삭제됨) / N(정상)
  REG_ID       VARCHAR(50),                   -- 등록자 ID
  REG_NM       VARCHAR(50),                   -- 등록자 이름
  REG_DTM      TIMESTAMPTZ DEFAULT NOW(),     -- 등록 일시
  MDFCN_DTM    TIMESTAMPTZ DEFAULT NOW()      -- 수정 일시
);

-- ============================================================
-- 2. 인덱스
-- ============================================================
CREATE INDEX IF NOT EXISTS IDX_MAP_BASE_USE ON MAP_BASE_DATA(USE_YN);
CREATE INDEX IF NOT EXISTS IDX_MAP_BASE_KEY ON MAP_BASE_DATA(MAP_KEY);
CREATE INDEX IF NOT EXISTS IDX_MAP_BASE_DEL ON MAP_BASE_DATA(DEL_YN);

-- ============================================================
-- 3. 초기 데이터 — 기존 하드코딩 4개 지도 유형
-- ============================================================
INSERT INTO MAP_BASE_DATA (MAP_KEY, MAP_NM, MAP_LEVEL_CD, USE_YN) VALUES
  ('s57',       'S-57 전자해도',   'S-57',  'Y'),
  ('s101',      'S-101 전자해도',  'S-101', 'Y'),
  ('threeD',    '3D 지도',         '3D',    'Y'),
  ('satellite', '위성 영상',        'SAT',   'Y')
ON CONFLICT (MAP_KEY) DO NOTHING;
