From 79256bae8129965496f9a977c323d4f2e7594b44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Fri, 8 May 2026 04:29:14 +0900 Subject: [PATCH] Add market rules and monitor rotation state models --- app/models.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/models.py b/app/models.py index e5d75ad..f252963 100644 --- a/app/models.py +++ b/app/models.py @@ -57,6 +57,7 @@ class BotState(Base): max_quote_per_trade: Mapped[float] = mapped_column(Float, nullable=False, default=100.0) emergency_stop: Mapped[bool] = mapped_column(Boolean, nullable=False, default=False) live_acknowledged: Mapped[bool] = mapped_column(Boolean, nullable=False, default=False) + last_market: Mapped[str] = mapped_column(String(32), nullable=False, default='') updated_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc), nullable=False) @@ -97,6 +98,23 @@ class BotLog(Base): created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), nullable=False, index=True) +class MarketRule(Base): + __tablename__ = 'market_rules' + id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) + market: Mapped[str] = mapped_column(String(32), nullable=False, unique=True, index=True) + base_asset: Mapped[str] = mapped_column(String(16), nullable=False, default='') + quote_asset: Mapped[str] = mapped_column(String(16), nullable=False, default='USDT') + min_amount: Mapped[float] = mapped_column(Float, nullable=False, default=0.0) + min_quote_amount: Mapped[float] = mapped_column(Float, nullable=False, default=0.0) + amount_precision: Mapped[int] = mapped_column(Integer, nullable=False, default=8) + price_precision: Mapped[int] = mapped_column(Integer, nullable=False, default=8) + maker_fee_rate: Mapped[float] = mapped_column(Float, nullable=False, default=0.002) + taker_fee_rate: Mapped[float] = mapped_column(Float, nullable=False, default=0.002) + is_trading_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True) + raw_json: Mapped[str] = mapped_column(Text, nullable=False, default='{}') + synced_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), nullable=False) + + class ChartHistoryPoint(Base): __tablename__ = 'chart_history' id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)