-- 加密货币前置匹配系统 - SQLite 建表脚本
-- 本系统仅做前置策略匹配，不处理币种、点位、箱体细节

-- 1. 大盘阶段表
CREATE TABLE IF NOT EXISTS market_regime (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL UNIQUE,
    trade_type TEXT NOT NULL,       -- 顺势 / 反转 / 观望
    allow_direction TEXT NOT NULL,  -- 做多 / 做空 / 禁止 / 多空均可
    remark TEXT DEFAULT ''
);

-- 2. 账户表
CREATE TABLE IF NOT EXISTS account (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    account_name TEXT NOT NULL,
    total_capital REAL NOT NULL DEFAULT 100,
    trade_cycle TEXT NOT NULL,      -- 如 4H/1H、日内、灵活
    risk_ratio TEXT NOT NULL,       -- 如 5%~10%
    enable INTEGER NOT NULL DEFAULT 1,
    remark TEXT DEFAULT ''
);

-- 3. 策略表
CREATE TABLE IF NOT EXISTS strategy (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    strategy_name TEXT NOT NULL,
    fit_cycle TEXT NOT NULL,            -- 适用周期
    fit_trend_strength TEXT NOT NULL,   -- 强 / 弱 / 全部
    trade_type TEXT NOT NULL,           -- 顺势 / 反转 / 全部
    strategy_rule TEXT NOT NULL,        -- 策略规则文本（仅展示，不做校验）
    remark TEXT DEFAULT ''
);

-- 4. 匹配绑定表
CREATE TABLE IF NOT EXISTS regime_match (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    market_regime_id INTEGER NOT NULL,
    market_cycle TEXT NOT NULL,         -- 日线 / 4H / 1H
    trend_strength TEXT NOT NULL,       -- 强 / 弱 / 震荡
    account_id INTEGER NOT NULL,
    strategy_id INTEGER NOT NULL,
    force_direction TEXT DEFAULT '',    -- 强制方向：做多 / 做空 / 空=跟随大盘
    FOREIGN KEY (market_regime_id) REFERENCES market_regime(id) ON DELETE CASCADE,
    FOREIGN KEY (account_id) REFERENCES account(id) ON DELETE CASCADE,
    FOREIGN KEY (strategy_id) REFERENCES strategy(id) ON DELETE CASCADE
);

CREATE INDEX IF NOT EXISTS idx_regime_match_lookup
    ON regime_match(market_regime_id, market_cycle, trend_strength);
