-- 기존 DB에 menu_type.site 및 기본 site 1차 메뉴 추가용 스크립트
-- 주의: mt_idx 값은 실제 DB 상태에 따라 다를 수 있으므로,
--       아래에서 site용 mt_idx는 서브쿼리로 조회하여 사용한다.

-- 1) menu_type에 site 타입 추가 (이미 있으면 무시)
INSERT IGNORE INTO `menu_type` (`mt_code`, `mt_name`, `mt_sort`)
VALUES ('site', '사이트 메뉴', 20);

-- 2) lg_idx=1 기준 기본 1차 사이트 메뉴 추가
--    (이미 같은 이름/링크가 있으면 중복 INSERT를 피하기 위해 WHERE NOT EXISTS 사용)
INSERT INTO `menu` (`mt_idx`, `lg_idx`, `mm_name`, `mm_link`, `mm_pidx`, `mm_dep`, `mm_num`, `mm_cnode`, `mm_level`, `mm_is_view`)
SELECT mt.mt_idx, 1 AS lg_idx, t.mm_name, t.mm_link, 0 AS mm_pidx, 0 AS mm_dep, t.mm_num, 0 AS mm_cnode, '' AS mm_level, 'Y' AS mm_is_view
FROM (
  SELECT 0 AS mm_num, '기본정보관리'   AS mm_name, 'bag/basic-info'       AS mm_link UNION ALL
  SELECT 1,           '발주 입고 관리', 'bag/purchase-inbound'          UNION ALL
  SELECT 2,           '불출 관리',      'bag/issue'                     UNION ALL
  SELECT 3,           '재고 관리',      'bag/inventory'                 UNION ALL
  SELECT 4,           '판매 관리',      'bag/sales'                     UNION ALL
  SELECT 5,           '판매 현황',      'bag/sales-stats'               UNION ALL
  SELECT 6,           '봉투 수불 관리', 'bag/flow'                      UNION ALL
  SELECT 7,           '통계 분석 관리', 'bag/analytics/year-over-year'  UNION ALL
  SELECT 8,           '창',             'bag/window'                    UNION ALL
  SELECT 9,           '도움말',         'bag/help'
) AS t
JOIN `menu_type` mt ON mt.mt_code = 'site'
WHERE NOT EXISTS (
  SELECT 1 FROM `menu` m
  WHERE m.mt_idx = mt.mt_idx
    AND m.lg_idx = 1
    AND m.mm_pidx = 0
    AND m.mm_name = t.mm_name
    AND m.mm_link = t.mm_link
);

-- 3) 기본정보관리 하위 "기본코드관리" → bag/code-kinds
INSERT INTO `menu` (`mt_idx`, `lg_idx`, `mm_name`, `mm_link`, `mm_pidx`, `mm_dep`, `mm_num`, `mm_cnode`, `mm_level`, `mm_is_view`)
SELECT m.mt_idx, m.lg_idx, '기본코드관리', 'bag/code-kinds', m.mm_idx, 1, 0, 0, '', 'Y'
FROM `menu` m
JOIN `menu_type` mt ON mt.mt_idx = m.mt_idx AND mt.mt_code = 'site'
WHERE m.lg_idx = 1 AND m.mm_link = 'bag/basic-info' AND m.mm_pidx = 0
  AND NOT EXISTS (
    SELECT 1 FROM `menu` c WHERE c.mt_idx = m.mt_idx AND c.lg_idx = m.lg_idx AND c.mm_link = 'bag/code-kinds'
  )
LIMIT 1;

UPDATE `menu` m
JOIN `menu_type` mt ON mt.mt_idx = m.mt_idx AND mt.mt_code = 'site'
SET m.mm_cnode = (
  SELECT COUNT(*) FROM `menu` c WHERE c.mm_pidx = m.mm_idx AND c.mt_idx = m.mt_idx AND c.lg_idx = m.lg_idx
)
WHERE m.lg_idx = 1 AND m.mm_link = 'bag/basic-info' AND m.mm_pidx = 0;

