aboutsummaryrefslogtreecommitdiff
path: root/models/announcement.py
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2026-03-23 00:07:08 +0300
committerTolmachev Igor <me@igorek.dev>2026-03-23 00:07:08 +0300
commitbc7f486aa7b543a934f4cf23dc80a95f44afcb64 (patch)
treec03e6f3f43b3c485561c729521c52331c9061a23 /models/announcement.py
parent536d022e8a55f6e53f01dfb7e0fae2ef24385aad (diff)
downloadvpn_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.py19
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 @@
1from aiogram.types import MessageEntity
2from pydantic import BaseModel
3from sqlalchemy import JSON 1from sqlalchemy import JSON
4from sqlalchemy.orm import Mapped, mapped_column 2from sqlalchemy.orm import Mapped, mapped_column
5 3
6from models import BaseTable 4from models import BaseTable, RichText
7
8
9class Message(BaseModel):
10 text: str
11 entities: list[MessageEntity] = []
12 5
13 6
14class Announcement(BaseTable): 7class 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()