diff options
| author | Tolmachev Igor <me@igorek.dev> | 2026-03-23 00:07:08 +0300 |
|---|---|---|
| committer | Tolmachev Igor <me@igorek.dev> | 2026-03-23 00:07:08 +0300 |
| commit | bc7f486aa7b543a934f4cf23dc80a95f44afcb64 (patch) | |
| tree | c03e6f3f43b3c485561c729521c52331c9061a23 /models/suggest.py | |
| parent | 536d022e8a55f6e53f01dfb7e0fae2ef24385aad (diff) | |
| download | vpn_manager_bot-bc7f486aa7b543a934f4cf23dc80a95f44afcb64.tar.gz vpn_manager_bot-bc7f486aa7b543a934f4cf23dc80a95f44afcb64.zip | |
Add initial database migration
Diffstat (limited to 'models/suggest.py')
| -rw-r--r-- | models/suggest.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/models/suggest.py b/models/suggest.py new file mode 100644 index 0000000..1ba18a0 --- /dev/null +++ b/models/suggest.py | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | from sqlalchemy import JSON | ||
| 2 | from sqlalchemy.orm import Mapped, mapped_column | ||
| 3 | from sqlalchemy.sql.schema import ForeignKey | ||
| 4 | |||
| 5 | from models import RichText, User | ||
| 6 | from models.base import BaseTable | ||
| 7 | |||
| 8 | |||
| 9 | class Suggest(BaseTable): | ||
| 10 | __tablename__ = "suggest" | ||
| 11 | |||
| 12 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) | ||
| 13 | user_id: Mapped[int] = mapped_column(ForeignKey(User.id)) | ||
| 14 | suggested_user_id: Mapped[int] | ||
| 15 | __message: Mapped[str] = mapped_column("message", JSON()) | ||
| 16 | |||
| 17 | @property | ||
| 18 | def message(self) -> RichText: | ||
| 19 | return RichText.model_validate_json(self.__message) | ||
| 20 | |||
| 21 | @message.setter | ||
| 22 | def message_set(self, value: RichText) -> None: | ||
| 23 | self.__message = value.model_dump_json() | ||
