# Standard Library Imports from enum import Enum # Third-Party Library Imports from sqlalchemy import ( Boolean, Column, DateTime, Index, Integer, String, Text, func, ) from sqlalchemy import ( Enum as saEnum, ) from sqlalchemy import ( text as sa_text, ) # Local Application Imports from .database import Base class OptionEnum(str, Enum): OPTION_A = "option_a" OPTION_B = "option_b" class VoteResult(Base): __tablename__ = "vote_results" id = Column(Integer, primary_key=True, autoincrement=True) created_at = Column(DateTime, nullable=False, server_default=func.now()) comparison_type = Column(String(50), nullable=False) winning_provider = Column(String(50), nullable=False) winning_option = Column(saEnum(OptionEnum), nullable=False) # type: ignore option_a_provider = Column(String(50), nullable=False) option_b_provider = Column(String(50), nullable=False) option_a_generation_id = Column(String(100), nullable=True) option_b_generation_id = Column(String(100), nullable=True) voice_description = Column(Text, nullable=False) text = Column(Text, nullable=False) is_custom_text = Column(Boolean, nullable=False, server_default=sa_text("false")) __table_args__ = ( Index("idx_created_at", "created_at"), Index("idx_comparison_type", "comparison_type"), Index("idx_winning_provider", "winning_provider"), ) def __repr__(self): return ( f"" )