-- V017: 회사 관리 그룹 하위 관리자 메뉴(MENU_TYPE='0', COMPANY_CODE='*') 순서 재배열
--
-- 변경 후 순서:
--   1) 회사관리        (조직 계층: 회사)
--   2) 부서관리        (조직 계층: 부서)
--   3) 사용자관리      (조직 계층: 사용자)
--   4) 메뉴관리        (권한 체계: 메뉴)
--   5) 권한관리        (권한 체계: 권한)
--   6) 권한 그룹관리   (권한 체계: 권한 그룹)
--
-- 사유: 기존 순서(회사 → 사용자 → 메뉴 → 권한 → 권한그룹 → 부서)는 부서가 맨 끝으로
--       빠져 조직 계층이 끊기고, 권한 그룹이 권한관리 뒤에 오는 등 그룹 일관성이 없었다.
--       조직(회사→부서→사용자) + 권한(메뉴→권한→권한그룹) 두 묶음으로 정렬한다.
--
-- 멱등성: SEQ 만 갱신하므로 중복 실행 안전. MENU_NAME_KOR + MENU_TYPE + COMPANY_CODE
--         로 식별하여 다른 회사/사용자 메뉴는 영향 없음.
--
-- 타입 주의: MENU_INFO.SEQ 컬럼은 character varying 이라 정수 리터럴을 그대로
--           쓰면 CASE 가 ELSE SEQ(varchar) 와 타입 불일치(42804) 로 실패한다.
--           → THEN 값은 반드시 문자열 리터럴로 줄 것.

UPDATE MENU_INFO
   SET SEQ = CASE MENU_NAME_KOR
                  WHEN '회사관리'      THEN '100'
                  WHEN '부서관리'      THEN '200'
                  WHEN '사용자관리'    THEN '300'
                  WHEN '메뉴관리'      THEN '400'
                  WHEN '권한관리'      THEN '500'
                  WHEN '권한 그룹관리' THEN '600'
                  ELSE SEQ
              END
 WHERE MENU_TYPE = '0'
   AND COMPANY_CODE = '*'
   AND PARENT_OBJ_ID IS NOT NULL
   AND PARENT_OBJ_ID <> '0'
   AND MENU_NAME_KOR IN (
       '회사관리', '부서관리', '사용자관리',
       '메뉴관리', '권한관리', '권한 그룹관리'
   );
