from datetime import datetime from sqlalchemy import DateTime, Float, ForeignKey, String from sqlalchemy.orm import Mapped, mapped_column, relationship from app.database import Base class TradeSetup(Base): __tablename__ = "trade_setups" id: Mapped[int] = mapped_column(primary_key=True) ticker_id: Mapped[int] = mapped_column( ForeignKey("tickers.id", ondelete="CASCADE"), nullable=False ) direction: Mapped[str] = mapped_column(String(10), nullable=False) entry_price: Mapped[float] = mapped_column(Float, nullable=False) stop_loss: Mapped[float] = mapped_column(Float, nullable=False) target: Mapped[float] = mapped_column(Float, nullable=False) rr_ratio: Mapped[float] = mapped_column(Float, nullable=False) composite_score: Mapped[float] = mapped_column(Float, nullable=False) detected_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), nullable=False ) ticker = relationship("Ticker", back_populates="trade_setups")