{
  "version": "6",
  "dialect": "sqlite",
  "id": "137390b3-3e87-44a6-bd49-af70d51d3cb3",
  "prevId": "00000000-0000-0000-0000-000000000000",
  "tables": {
    "backtest_runs": {
      "name": "backtest_runs",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true,
          "autoincrement": false
        },
        "symbol": {
          "name": "symbol",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "period": {
          "name": "period",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "total_trades": {
          "name": "total_trades",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "wins": {
          "name": "wins",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "losses": {
          "name": "losses",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "expired": {
          "name": "expired",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "win_rate": {
          "name": "win_rate",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "profit_factor": {
          "name": "profit_factor",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "net_r": {
          "name": "net_r",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "max_drawdown": {
          "name": "max_drawdown",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "equity_json": {
          "name": "equity_json",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "data_mode": {
          "name": "data_mode",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "tested_at": {
          "name": "tested_at",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        }
      },
      "indexes": {
        "backtest_runs_symbol_idx": {
          "name": "backtest_runs_symbol_idx",
          "columns": [
            "symbol"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "backtest_runs_symbol_instruments_symbol_fk": {
          "name": "backtest_runs_symbol_instruments_symbol_fk",
          "tableFrom": "backtest_runs",
          "tableTo": "instruments",
          "columnsFrom": [
            "symbol"
          ],
          "columnsTo": [
            "symbol"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "checkConstraints": {}
    },
    "instruments": {
      "name": "instruments",
      "columns": {
        "symbol": {
          "name": "symbol",
          "type": "text",
          "primaryKey": true,
          "notNull": true,
          "autoincrement": false
        },
        "provider_symbol": {
          "name": "provider_symbol",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "label": {
          "name": "label",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "market": {
          "name": "market",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "precision": {
          "name": "precision",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "atr_multiplier": {
          "name": "atr_multiplier",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 1.5
        },
        "risk_reward": {
          "name": "risk_reward",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 2
        },
        "expiry_hours": {
          "name": "expiry_hours",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 10
        },
        "enabled": {
          "name": "enabled",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "sort_order": {
          "name": "sort_order",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "created_at": {
          "name": "created_at",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "updated_at": {
          "name": "updated_at",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        }
      },
      "indexes": {
        "instruments_provider_symbol_uq": {
          "name": "instruments_provider_symbol_uq",
          "columns": [
            "provider_symbol"
          ],
          "isUnique": true
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "checkConstraints": {}
    },
    "market_snapshots": {
      "name": "market_snapshots",
      "columns": {
        "symbol": {
          "name": "symbol",
          "type": "text",
          "primaryKey": true,
          "notNull": true,
          "autoincrement": false
        },
        "price": {
          "name": "price",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "change": {
          "name": "change",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "direction": {
          "name": "direction",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'WAIT'"
        },
        "score": {
          "name": "score",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "reasons_json": {
          "name": "reasons_json",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'[]'"
        },
        "chart_json": {
          "name": "chart_json",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'[]'"
        },
        "indicators_json": {
          "name": "indicators_json",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'{}'"
        },
        "data_mode": {
          "name": "data_mode",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'demo'"
        },
        "updated_at": {
          "name": "updated_at",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        }
      },
      "indexes": {
        "market_snapshots_updated_idx": {
          "name": "market_snapshots_updated_idx",
          "columns": [
            "updated_at"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "market_snapshots_symbol_instruments_symbol_fk": {
          "name": "market_snapshots_symbol_instruments_symbol_fk",
          "tableFrom": "market_snapshots",
          "tableTo": "instruments",
          "columnsFrom": [
            "symbol"
          ],
          "columnsTo": [
            "symbol"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "checkConstraints": {}
    },
    "signal_events": {
      "name": "signal_events",
      "columns": {
        "id": {
          "name": "id",
          "type": "integer",
          "primaryKey": true,
          "notNull": true,
          "autoincrement": true
        },
        "signal_id": {
          "name": "signal_id",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "type": {
          "name": "type",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "price": {
          "name": "price",
          "type": "real",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "note": {
          "name": "note",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "occurred_at": {
          "name": "occurred_at",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        }
      },
      "indexes": {
        "signal_events_signal_idx": {
          "name": "signal_events_signal_idx",
          "columns": [
            "signal_id"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "signal_events_signal_id_signals_id_fk": {
          "name": "signal_events_signal_id_signals_id_fk",
          "tableFrom": "signal_events",
          "tableTo": "signals",
          "columnsFrom": [
            "signal_id"
          ],
          "columnsTo": [
            "id"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "checkConstraints": {}
    },
    "signals": {
      "name": "signals",
      "columns": {
        "id": {
          "name": "id",
          "type": "text",
          "primaryKey": true,
          "notNull": true,
          "autoincrement": false
        },
        "symbol": {
          "name": "symbol",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "direction": {
          "name": "direction",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'PENDING'"
        },
        "timeframe": {
          "name": "timeframe",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'H1'"
        },
        "trend_timeframe": {
          "name": "trend_timeframe",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'H4'"
        },
        "entry": {
          "name": "entry",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "entry_low": {
          "name": "entry_low",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "entry_high": {
          "name": "entry_high",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "stop_loss": {
          "name": "stop_loss",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "take_profit_1": {
          "name": "take_profit_1",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "take_profit_2": {
          "name": "take_profit_2",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "setup_score": {
          "name": "setup_score",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "risk_reward": {
          "name": "risk_reward",
          "type": "real",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "reasons_json": {
          "name": "reasons_json",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "indicators_json": {
          "name": "indicators_json",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "chart_json": {
          "name": "chart_json",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "data_mode": {
          "name": "data_mode",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'demo'"
        },
        "generated_at": {
          "name": "generated_at",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "expires_at": {
          "name": "expires_at",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "activated_at": {
          "name": "activated_at",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "tp1_at": {
          "name": "tp1_at",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "closed_at": {
          "name": "closed_at",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "result_r": {
          "name": "result_r",
          "type": "real",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "last_checked_at": {
          "name": "last_checked_at",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "locked": {
          "name": "locked",
          "type": "integer",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        }
      },
      "indexes": {
        "signals_symbol_idx": {
          "name": "signals_symbol_idx",
          "columns": [
            "symbol"
          ],
          "isUnique": false
        },
        "signals_status_idx": {
          "name": "signals_status_idx",
          "columns": [
            "status"
          ],
          "isUnique": false
        },
        "signals_generated_idx": {
          "name": "signals_generated_idx",
          "columns": [
            "generated_at"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {
        "signals_symbol_instruments_symbol_fk": {
          "name": "signals_symbol_instruments_symbol_fk",
          "tableFrom": "signals",
          "tableTo": "instruments",
          "columnsFrom": [
            "symbol"
          ],
          "columnsTo": [
            "symbol"
          ],
          "onDelete": "no action",
          "onUpdate": "no action"
        }
      },
      "compositePrimaryKeys": {},
      "uniqueConstraints": {},
      "checkConstraints": {}
    }
  },
  "views": {},
  "enums": {},
  "_meta": {
    "schemas": {},
    "tables": {},
    "columns": {}
  },
  "internal": {
    "indexes": {}
  }
}