-- ============================================================
-- V3: 전역 지표 파라미터 설정 테이블
-- 장치(device_id) 또는 사용자(user_id)별로 지표 계산에 사용할
-- 모든 파라미터를 JSON으로 저장한다.
-- 프론트엔드 indicatorRegistry.ts의 defaultParams를 오버라이드.
-- ============================================================

CREATE TABLE IF NOT EXISTS gc_indicator_settings (
    id          BIGINT AUTO_INCREMENT PRIMARY KEY,
    device_id   VARCHAR(100)    NULL COMMENT '비회원 기기 식별자',
    user_id     BIGINT          NULL COMMENT '회원 ID (향후 확장용)',

    -- 지표 타입별 파라미터를 최상위 키로 저장
    -- 예) {"RSI":{"length":9},"MACD":{"fastLength":12,"slowLength":26,"signalLength":9},...}
    -- MySQL 8.0: JSON 컬럼에 DEFAULT 값 불가 → 애플리케이션 레이어에서 '{}' 기본값 처리
    params_json JSON            NOT NULL,

    created_at  DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at  DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    UNIQUE KEY uk_indi_device (device_id),
    UNIQUE KEY uk_indi_user   (user_id),
    INDEX idx_indi_device (device_id),
    INDEX idx_indi_user   (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='장치/사용자별 전역 지표 계산 파라미터';
