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/announcement.py | |
| parent | 536d022e8a55f6e53f01dfb7e0fae2ef24385aad (diff) | |
| download | vpn_manager_bot-bc7f486aa7b543a934f4cf23dc80a95f44afcb64.tar.gz vpn_manager_bot-bc7f486aa7b543a934f4cf23dc80a95f44afcb64.zip | |
Add initial database migration
Diffstat (limited to 'models/announcement.py')
| -rw-r--r-- | models/announcement.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/models/announcement.py b/models/announcement.py index 5f752d7..9a6eef2 100644 --- a/models/announcement.py +++ b/models/announcement.py | |||
| @@ -1,18 +1,19 @@ | |||
| 1 | from aiogram.types import MessageEntity | ||
| 2 | from pydantic import BaseModel | ||
| 3 | from sqlalchemy import JSON | 1 | from sqlalchemy import JSON |
| 4 | from sqlalchemy.orm import Mapped, mapped_column | 2 | from sqlalchemy.orm import Mapped, mapped_column |
| 5 | 3 | ||
| 6 | from models import BaseTable | 4 | from models import BaseTable, RichText |
| 7 | |||
| 8 | |||
| 9 | class Message(BaseModel): | ||
| 10 | text: str | ||
| 11 | entities: list[MessageEntity] = [] | ||
| 12 | 5 | ||
| 13 | 6 | ||
| 14 | class Announcement(BaseTable): | 7 | class Announcement(BaseTable): |
| 15 | __tablename__ = "announcement" | 8 | __tablename__ = "announcement" |
| 16 | 9 | ||
| 17 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) | 10 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) |
| 18 | message: Mapped[str] = mapped_column(JSON()) | 11 | __message: Mapped[str] = mapped_column("message", JSON()) |
| 12 | |||
| 13 | @property | ||
| 14 | def message(self) -> RichText: | ||
| 15 | return RichText.model_validate_json(self.__message) | ||
| 16 | |||
| 17 | @message.setter | ||
| 18 | def message_set(self, value: RichText) -> None: | ||
| 19 | self.__message = value.model_dump_json() | ||
