|
- from __future__ import annotations
-
- from datetime import datetime
-
- from eloquent import Model
-
- from config import DB
-
-
- class AnsweredFlag (Model):
- id: int
- answer_id: int
- platform: int
- answered: bool
-
- __timestamps__ = False
-
- @property
- def answer (
- self,
- ) -> Answer:
- return self.belongs_to (Answer)
-
-
- class Answer (Model):
- id: int
- query_id: int
- character: int
- content: str
- answer_type: int
- sent_at: datetime
-
- __timestamps__ = False
-
- @property
- def query (
- self,
- ) -> Query:
- return self.belongs_to (Query)
-
- def answered (
- self,
- platform: int,
- ) -> bool | None:
- answered_flag = (AnsweredFlag.where ('answer_id', self.id)
- .where ('platform', platform)
- .first ())
- if answered_flag is None:
- return None
- return answered_flag.answered
-
-
- class Query (Model):
- id: int
- user_id: int | None
- target_character: int
- content: str
- image_url: str | None
- query_type: int
- model: int
- sent_at: datetime
- answered: bool
-
- __timestamps__ = False
-
- @property
- def user (
- self,
- ) -> User:
- return self.belongs_to (User)
-
- @property
- def answer_histories (
- self,
- ) -> list[Answer]:
- return [x.answer for x in self.has_many (QueryAnswerHistory).get ()]
-
-
- class QueryAnswerHistory (Model):
- id: int
- query_id: int
- answer_id: int
-
- __timestamps__ = False
-
- @property
- def query (
- self,
- ) -> Query:
- return self.belongs_to (Query)
-
- @property
- def answer (
- self,
- ) -> Answer:
- return self.belongs_to (Answer)
-
-
- class User (Model):
- id: int
- platform: int
- code: str
- name: str
- icon: bytes
-
- __timestamps__ = False
|