-- Migration 028: PRED_EXEC에 실행 그룹 식별자(PRED_RUN_SN) 추가
-- 같은 시점에 여러 모델로 실행된 PRED_EXEC 레코드를 하나의 "예측 실행"으로 묶는다.
-- 목록 화면에서 사고당 예측 실행 횟수만큼 행을 표시하기 위한 기반 구조.

-- 1. 컬럼 추가
ALTER TABLE wing.PRED_EXEC ADD COLUMN IF NOT EXISTS PRED_RUN_SN INTEGER;

-- 2. 기존 데이터 마이그레이션
-- 같은 ACDNT_SN + 시작 시각 60초 이내의 레코드를 동일 실행 그룹으로 묶는다.
-- MIN(PRED_EXEC_SN)을 그룹 대표 키로 사용한다.
UPDATE wing.PRED_EXEC pe1
SET PRED_RUN_SN = (
  SELECT MIN(pe2.PRED_EXEC_SN)
  FROM wing.PRED_EXEC pe2
  WHERE pe2.ACDNT_SN = pe1.ACDNT_SN
    AND ABS(EXTRACT(EPOCH FROM (
      COALESCE(pe2.BGNG_DTM, NOW()) - COALESCE(pe1.BGNG_DTM, NOW())
    ))) < 60
)
WHERE pe1.PRED_RUN_SN IS NULL;

-- 3. 시퀀스 생성 (신규 실행용 — 기존 최대값보다 충분히 높은 값에서 시작)
CREATE SEQUENCE IF NOT EXISTS wing.PRED_RUN_SN_SEQ
  START WITH 10000
  INCREMENT BY 1;
