diff --git a/onchain_scout_gate/app/models.py b/onchain_scout_gate/app/models.py index 152350d..8545077 100644 --- a/onchain_scout_gate/app/models.py +++ b/onchain_scout_gate/app/models.py @@ -1,6 +1,7 @@ from __future__ import annotations from datetime import datetime +from typing import Optional from sqlalchemy import DateTime, Float, Integer, String, Text from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column @@ -54,10 +55,10 @@ class KeyMonitor(Base): upper: Mapped[float] = mapped_column(Float) lower: Mapped[float] = mapped_column(Float) sl_tp_mode: Mapped[str] = mapped_column(String(24), default="standard") - manual_take_profit: Mapped[float | None] = mapped_column(Float, nullable=True) + manual_take_profit: Mapped[Optional[float]] = mapped_column(Float, nullable=True) stop_outside_pct: Mapped[float] = mapped_column(Float, default=0.3) breakeven_enabled: Mapped[int] = mapped_column(Integer, default=0) - note: Mapped[str | None] = mapped_column(Text, nullable=True) + note: Mapped[Optional[str]] = mapped_column(Text, nullable=True) created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow, index=True) @@ -67,7 +68,7 @@ class KeyMonitorHistory(Base): __tablename__ = "key_monitor_history" id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) - key_monitor_id: Mapped[int | None] = mapped_column(Integer, nullable=True) + key_monitor_id: Mapped[Optional[int]] = mapped_column(Integer, nullable=True) symbol: Mapped[str] = mapped_column(String(32), index=True) inst_id: Mapped[str] = mapped_column(String(48)) monitor_type: Mapped[str] = mapped_column(String(32)) @@ -75,15 +76,15 @@ class KeyMonitorHistory(Base): upper: Mapped[float] = mapped_column(Float) lower: Mapped[float] = mapped_column(Float) sl_tp_mode: Mapped[str] = mapped_column(String(24)) - manual_take_profit: Mapped[float | None] = mapped_column(Float, nullable=True) + manual_take_profit: Mapped[Optional[float]] = mapped_column(Float, nullable=True) stop_outside_pct: Mapped[float] = mapped_column(Float) - confirm_close: Mapped[float | None] = mapped_column(Float, nullable=True) - planned_sl: Mapped[float | None] = mapped_column(Float, nullable=True) - planned_tp: Mapped[float | None] = mapped_column(Float, nullable=True) - planned_rr: Mapped[float | None] = mapped_column(Float, nullable=True) - executor_signal_id: Mapped[str | None] = mapped_column(String(64), nullable=True) - executor_status: Mapped[str | None] = mapped_column(String(64), nullable=True) - checks_json: Mapped[str | None] = mapped_column(Text, nullable=True) - last_alert_message: Mapped[str | None] = mapped_column(Text, nullable=True) + confirm_close: Mapped[Optional[float]] = mapped_column(Float, nullable=True) + planned_sl: Mapped[Optional[float]] = mapped_column(Float, nullable=True) + planned_tp: Mapped[Optional[float]] = mapped_column(Float, nullable=True) + planned_rr: Mapped[Optional[float]] = mapped_column(Float, nullable=True) + executor_signal_id: Mapped[Optional[str]] = mapped_column(String(64), nullable=True) + executor_status: Mapped[Optional[str]] = mapped_column(String(64), nullable=True) + checks_json: Mapped[Optional[str]] = mapped_column(Text, nullable=True) + last_alert_message: Mapped[Optional[str]] = mapped_column(Text, nullable=True) close_reason: Mapped[str] = mapped_column(String(48), index=True) closed_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow, index=True)