-- ============================================================
-- V009: gear_type_master (어구 유형 마스터)
-- prediction classifier 출력값과 1:1 매칭
-- GearIdentification 화면에서 관리자가 룰 편집
-- ============================================================

CREATE TABLE kcg.gear_type_master (
    gear_code           VARCHAR(20)  PRIMARY KEY,
    gear_name_ko        VARCHAR(50)  NOT NULL,
    gear_name_en        VARCHAR(50),
    category            VARCHAR(20),                -- NET, TRAP, LINE
    -- 분류 룰 (prediction classifier가 사용)
    speed_min_kn        NUMERIC(5,2),               -- 조업 속도 범위
    speed_max_kn        NUMERIC(5,2),
    duration_min_minutes INT,                       -- 최소 지속시간
    pattern_signature   JSONB,                      -- 추가 분류 규칙 (확장용)
    polygon_shape_hint  VARCHAR(20),                -- LINEAR, CIRCULAR, CLUSTERED
    -- 합법성 기준
    legal_zones         TEXT[],                     -- zone_polygon_master.zone_code 참조
    legal_seasons       JSONB,                      -- [{"start":"03-01","end":"06-30"}]
    permit_required     BOOLEAN      DEFAULT true,
    -- 표시
    display_color       VARCHAR(7),
    display_icon        VARCHAR(30),
    display_order       INT          DEFAULT 0,
    description         TEXT,
    is_active           BOOLEAN      DEFAULT true,
    created_by          UUID,
    updated_at          TIMESTAMPTZ  DEFAULT now()
);

-- ============================================================
-- 시드: 프론트엔드 더미 기반 6종
-- ============================================================
INSERT INTO kcg.gear_type_master (gear_code, gear_name_ko, gear_name_en, category,
    speed_min_kn, speed_max_kn, duration_min_minutes, polygon_shape_hint,
    permit_required, display_color, display_order, description) VALUES
('TRAWL_BOTTOM', '저층트롤', 'Bottom Trawl', 'NET',
    2.0, 5.0, 60, 'LINEAR',
    true, '#EF4444', 10, '저층을 끌어 조업하는 그물. 해저 생태계 영향 크고 대부분의 수역에서 규제됨'),

('GILLNET', '유자망', 'Gill Net', 'NET',
    0.0, 2.0, 120, 'LINEAR',
    true, '#F59E0B', 20, '그물을 설치하고 기다리는 수동 어구. 부유/저층 구분'),

('TRAP', '통발', 'Trap/Pot', 'TRAP',
    0.0, 1.0, 240, 'CLUSTERED',
    true, '#3B82F6', 30, '바닥에 설치하는 덫 방식 어구. 특정 어종 대상'),

('PURSE_SEINE', '선망', 'Purse Seine', 'NET',
    3.0, 8.0, 30, 'CIRCULAR',
    true, '#22C55E', 40, '원형으로 그물을 던져 감싸는 대규모 어법. 선단 규모 필요'),

('LONGLINE', '연승', 'Long Line', 'LINE',
    1.0, 4.0, 180, 'LINEAR',
    true, '#8B5CF6', 50, '긴 줄에 낚시바늘을 다수 부착하는 어법. 궤적이 선형'),

('UNKNOWN', '미분류', 'Unknown', NULL,
    NULL, NULL, NULL, NULL,
    false, '#6B7280', 99, '분류 불가능한 어구 또는 어구 미사용 선박');
