aboutsummaryrefslogtreecommitdiff
path: root/models/suggest.py
blob: a76a004a166c0f55715d7ae610c4a3ae50a7ed04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from datetime import datetime

from sqlalchemy import JSON
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy.sql.schema import ForeignKey

from models import RichText, User
from models.base import BaseTable


class Suggest(BaseTable):
    __tablename__ = "suggest"

    id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
    user_id: Mapped[int] = mapped_column(ForeignKey(User.id))
    suggested_user_id: Mapped[int]
    __message: Mapped[str] = mapped_column("message", JSON())
    datetime: Mapped[datetime]

    @property
    def message(self) -> RichText:
        return RichText.model_validate_json(self.__message)

    @message.setter
    def message(self, value: RichText) -> None:
        self.__message = value.model_dump_json(ensure_ascii=False)