""" Trading signal models. """ import enum from datetime import datetime from sqlalchemy import ( Column, Integer, String, Numeric, DateTime, Date, Text, Enum as SQLEnum, ) from app.core.database import Base class SignalType(str, enum.Enum): BUY = "buy" SELL = "sell" PARTIAL_SELL = "partial_sell" class SignalStatus(str, enum.Enum): ACTIVE = "active" EXECUTED = "executed" EXPIRED = "expired" class Signal(Base): __tablename__ = "signals" id = Column(Integer, primary_key=True, index=True) date = Column(Date, nullable=False, index=True) ticker = Column(String(20), nullable=False, index=True) name = Column(String(100)) signal_type = Column(SQLEnum(SignalType), nullable=False) entry_price = Column(Numeric(12, 2)) target_price = Column(Numeric(12, 2)) stop_loss_price = Column(Numeric(12, 2)) reason = Column(String(200)) status = Column(SQLEnum(SignalStatus), default=SignalStatus.ACTIVE) created_at = Column(DateTime, default=datetime.utcnow) # Execution tracking fields executed_price = Column(Numeric(12, 2), nullable=True) executed_quantity = Column(Integer, nullable=True) executed_at = Column(DateTime, nullable=True)