-- 거래처 가입자에 필요한 추가 정보를 user_info 에 직접 컬럼으로 추가 (스펙 §3.1 B안)
-- supply_mng 와 user_info.partner_objid 연결도 가능하지만, 신규 가입 흐름 단순화 위해 직접 컬럼 추가.
-- 이미 컬럼이 있으면 ADD COLUMN IF NOT EXISTS 로 idempotent.
BEGIN;

ALTER TABLE user_info
  ADD COLUMN IF NOT EXISTS biz_no   VARCHAR(20),
  ADD COLUMN IF NOT EXISTS ceo_name VARCHAR(100);

-- 품목 검색 메뉴(스펙 §5에서 출고 요청과 통합으로 변경됨) 비활성화
UPDATE menu_info SET status = 'inactive' WHERE objid = 9000101;

-- ===== 관리자 admin-panel 의 [메뉴관리] 섹션 복구 =====
-- [관리자] 루트(parent=0, menu_name_kor='관리자') 아래에 [메뉴관리] 섹션 + [메뉴관리] 자식이 status='active' 로 존재해야
-- /api/admin/sidebar-menus 가 노출함. 누락된 경우 idempotent 하게 보장.
DO $$
DECLARE
  admin_root_id NUMERIC;
  menu_section_id NUMERIC;
BEGIN
  SELECT objid INTO admin_root_id FROM menu_info
   WHERE parent_obj_id = 0 AND menu_name_kor = '관리자' LIMIT 1;
  IF admin_root_id IS NULL THEN
    RAISE NOTICE '[admin] 루트가 없어 메뉴관리 복구 스킵';
    RETURN;
  END IF;

  -- 섹션이 존재하면 active 로 보장, 없으면 9000600 으로 신규 등록
  SELECT objid INTO menu_section_id FROM menu_info
   WHERE parent_obj_id = admin_root_id AND menu_name_kor = '메뉴관리' LIMIT 1;
  IF menu_section_id IS NULL THEN
    menu_section_id := 9000600;
    INSERT INTO menu_info (objid, menu_type, parent_obj_id, menu_name_kor, menu_name_eng,
                           seq, menu_url, status, system_name, regdate)
    VALUES (menu_section_id, '1', admin_root_id, '메뉴관리', 'Menu Management',
            10, '', 'active', 'PMS', NOW());
  ELSE
    UPDATE menu_info SET status = 'active' WHERE objid = menu_section_id;
  END IF;

  -- 자식: 메뉴관리 (LABEL_TO_TAB 매핑이 '메뉴관리' → 'menu' 이므로 정확히 동일 이름 필수)
  -- menu_info.objid 에 unique 제약이 없을 수 있으므로 ON CONFLICT 대신 EXISTS 분기로 idempotent 처리
  IF EXISTS (SELECT 1 FROM menu_info WHERE objid = 9000601) THEN
    UPDATE menu_info
       SET parent_obj_id = menu_section_id,
           menu_name_kor = '메뉴관리',
           menu_name_eng = 'Menus',
           menu_url = '',
           status = 'active',
           system_name = 'PMS'
     WHERE objid = 9000601;
  ELSIF NOT EXISTS (
    SELECT 1 FROM menu_info
     WHERE parent_obj_id = menu_section_id AND menu_name_kor = '메뉴관리'
  ) THEN
    INSERT INTO menu_info (objid, menu_type, parent_obj_id, menu_name_kor, menu_name_eng,
                           seq, menu_url, status, system_name, regdate)
    VALUES (9000601, '1', menu_section_id, '메뉴관리', 'Menus',
            10, '', 'active', 'PMS', NOW());
  END IF;
END $$;

COMMIT;
