-- 백테스팅 실행 이력 및 결과 테이블
CREATE TABLE IF NOT EXISTS gc_backtest_result (
    id              BIGINT          NOT NULL AUTO_INCREMENT PRIMARY KEY,
    device_id       VARCHAR(100),
    strategy_id     BIGINT,
    strategy_name   VARCHAR(200),
    symbol          VARCHAR(50),
    timeframe       VARCHAR(10),
    bar_count       INT             NOT NULL DEFAULT 0,
    from_time       BIGINT          COMMENT '시작 봉 Unix timestamp (초)',
    to_time         BIGINT          COMMENT '종료 봉 Unix timestamp (초)',

    -- 설정 스냅샷
    settings_json   JSON,

    -- 매수/매도 시그널 배열
    signals_json    JSON,

    -- Ta4j AnalysisCriterion 계산 결과 전체
    analysis_json   JSON,

    -- 빠른 목록 조회용 인덱스 컬럼
    total_return    DECIMAL(12,4)   COMMENT '총 수익률 (소수, e.g. 0.15 = +15%)',
    win_rate        DECIMAL(6,4)    COMMENT '승률 0~1',
    total_trades    INT,
    max_drawdown    DECIMAL(12,4)   COMMENT '최대 낙폭 (음수)',
    sharpe_ratio    DECIMAL(10,4),
    final_equity    DECIMAL(20,2),

    created_at      DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,

    INDEX idx_device_created (device_id, created_at DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
