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)