29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
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')
|