-- 기존 sales_agency(사업자번호·대표자 등) → 구분·코드·명 스키마로 변경
-- (이미 신규 스키마면 건너뛰거나 에러 날 수 있음 — 실행 전 백업 권장)

-- 1) 신규 컬럼
ALTER TABLE `sales_agency`
  ADD COLUMN `sa_kind` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '대행소 구분' AFTER `sa_lg_idx`,
  ADD COLUMN `sa_code` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '대행소 코드' AFTER `sa_kind`;

-- 2) 코드·구분 채우기 (사업자번호 → 코드, 없으면 SA+번호)
UPDATE `sales_agency`
SET `sa_code` = CASE
    WHEN `sa_biz_no` IS NOT NULL AND TRIM(`sa_biz_no`) <> '' THEN LEFT(TRIM(`sa_biz_no`), 50)
    ELSE CONCAT('SA', `sa_idx`)
  END
WHERE `sa_code` = '';

UPDATE `sales_agency` SET `sa_kind` = '기타' WHERE `sa_kind` = '' OR `sa_kind` IS NULL;

-- 3) 동일 지자체 내 코드 중복 제거 (있으면 두 번째부터 접미사)
-- (간단 처리: sa_idx 붙이기)
UPDATE `sales_agency` s1
INNER JOIN (
  SELECT `sa_lg_idx`, `sa_code`, MIN(`sa_idx`) AS keep_idx, COUNT(*) AS cnt
  FROM `sales_agency`
  GROUP BY `sa_lg_idx`, `sa_code`
  HAVING cnt > 1
) d ON d.sa_lg_idx = s1.sa_lg_idx AND d.sa_code = s1.sa_code AND s1.sa_idx > d.keep_idx
SET s1.sa_code = LEFT(CONCAT(s1.sa_code, '_', s1.sa_idx), 50);

-- 4) 불필요 컬럼 제거
ALTER TABLE `sales_agency`
  DROP COLUMN `sa_biz_no`,
  DROP COLUMN `sa_rep_name`,
  DROP COLUMN `sa_tel`,
  DROP COLUMN `sa_addr`,
  DROP COLUMN `sa_state`;

-- 5) 유니크 인덱스
ALTER TABLE `sales_agency` ADD UNIQUE KEY `uk_sa_lg_code` (`sa_lg_idx`, `sa_code`);
