from datetime import datetime from typing import Optional, List, TYPE_CHECKING from sqlmodel import Field, SQLModel, Relationship if TYPE_CHECKING: from diyalgo.models import CustomEmoji, Status class PollOption(SQLModel, table=True): id: Optional[int] = Field(primary_key=True, default=None) poll_id: Optional[int] = Field(default=None, foreign_key='poll.id') poll: 'Poll' = Relationship(back_populates='options') title: str votes_count: Optional[int] = None class Poll(SQLModel, table=True): id: int = Field(primary_key=True) #emojis: List["CustomEmoji"] = Field(default_factory=list) expires_at: Optional[datetime] = None expired: bool multiple: bool options: List[PollOption] = Relationship(back_populates='poll') own_votes: List[int] = Field(default_factory=list) voted: Optional[bool] = None votes_count: int voters_count: Optional[int] = None #status_id: Optional[int] = Field(default=None, foreign_key='status.id') #status: 'Status' = Relationship(back_populates='poll')