-- ============================================================
-- V4: 앱 전역 차트 기본 설정 테이블
-- 장치(device_id) 또는 사용자(user_id)별로 하드코딩을 대체하는
-- 기본 차트 설정값을 저장한다.
--
-- 이 테이블의 값이 우선 적용되며, 없으면 프론트엔드 코드의 fallback 값 사용.
-- ============================================================

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

    -- 기본 차트 설정 (per-slot 기본값, gc_chart_slot 없을 때 사용)
    default_symbol      VARCHAR(50)  NOT NULL DEFAULT 'KRW-BTC' COMMENT '기본 종목',
    default_timeframe   VARCHAR(10)  NOT NULL DEFAULT '1D'       COMMENT '기본 타임프레임',
    default_chart_type  VARCHAR(20)  NOT NULL DEFAULT 'candlestick' COMMENT '기본 차트 타입',
    default_theme       VARCHAR(20)  NOT NULL DEFAULT 'dark'     COMMENT '기본 테마',
    default_log_scale   TINYINT(1)   NOT NULL DEFAULT 0          COMMENT '기본 로그 스케일',
    default_layout_id   VARCHAR(20)  NOT NULL DEFAULT '1'        COMMENT '기본 레이아웃 ID',

    -- 캔들 색상 기본값 (frontend DEFAULT_MAIN_CHART_STYLE 대체)
    -- {"upColor":"#ff6b6b","downColor":"#4dabf7","borderUpColor":"#ff6b6b",...}
    main_chart_style_json JSON       NULL COMMENT '캔들 색상 설정',

    -- 기본 차트 동기화 옵션 (frontend DEFAULT_SYNC 대체)
    -- {"symbol":false,"interval":false,"crosshair":true,"time":false,"dateRange":false}
    sync_options_json JSON           NULL COMMENT '멀티차트 동기화 옵션',

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

    UNIQUE KEY uk_app_device (device_id),
    UNIQUE KEY uk_app_user   (user_id),
    INDEX idx_app_device (device_id),
    INDEX idx_app_user   (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='장치/사용자별 앱 전역 차트 기본 설정 (하드코딩 대체)';
