from sqlalchemy import Column, String, DateTime, Float, Integer, ForeignKey, Boolean
from sqlalchemy.orm import relationship
from datetime import datetime
from src.data.models.database import Base
class Settlement(Base):
__tablename__ = "settlements"
id = Column(Integer, primary_key=True, index=True)
contract_id = Column(Integer, ForeignKey("contracts.id"), unique=True, nullable=False)
# Settlement data
settlement_date = Column(DateTime, nullable=False, index=True)
settlement_price = Column(Float, nullable=False) # $0.00 or $1.00
outcome = Column(Boolean, nullable=False) # True = YES, False = NO
# Verification
verified = Column(Boolean, default=False)
verification_source = Column(String(200), nullable=True)
notes = Column(String(1000), nullable=True)
created_at = Column(DateTime, default=datetime.utcnow, nullable=False)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
# Relationships
contract = relationship("Contract", back_populates="settlement")
def __repr__(self):
return f"<Settlement(contract_id={self.contract_id}, outcome={self.outcome})>"