diff options
Diffstat (limited to 'models')
| -rw-r--r-- | models/__init__.py | 2 | ||||
| -rw-r--r-- | models/announcement.py | 5 | ||||
| -rw-r--r-- | models/suggest.py | 7 | ||||
| -rw-r--r-- | models/user.py | 2 |
4 files changed, 13 insertions, 3 deletions
diff --git a/models/__init__.py b/models/__init__.py index 412f467..9d56b33 100644 --- a/models/__init__.py +++ b/models/__init__.py | |||
| @@ -4,6 +4,7 @@ from .rich_text import RichText | |||
| 4 | from .user import User | 4 | from .user import User |
| 5 | from .invoce import Invoice | 5 | from .invoce import Invoice |
| 6 | from .payment import Payment | 6 | from .payment import Payment |
| 7 | from .announcement import Announcement | ||
| 7 | # isort: on | 8 | # isort: on |
| 8 | 9 | ||
| 9 | __all__ = [ | 10 | __all__ = [ |
| @@ -12,4 +13,5 @@ __all__ = [ | |||
| 12 | "Invoice", | 13 | "Invoice", |
| 13 | "Payment", | 14 | "Payment", |
| 14 | "RichText", | 15 | "RichText", |
| 16 | "Announcement", | ||
| 15 | ] | 17 | ] |
diff --git a/models/announcement.py b/models/announcement.py index 9a6eef2..7243684 100644 --- a/models/announcement.py +++ b/models/announcement.py | |||
| @@ -1,3 +1,5 @@ | |||
| 1 | from datetime import datetime | ||
| 2 | |||
| 1 | from sqlalchemy import JSON | 3 | from sqlalchemy import JSON |
| 2 | from sqlalchemy.orm import Mapped, mapped_column | 4 | from sqlalchemy.orm import Mapped, mapped_column |
| 3 | 5 | ||
| @@ -9,11 +11,12 @@ class Announcement(BaseTable): | |||
| 9 | 11 | ||
| 10 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) | 12 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) |
| 11 | __message: Mapped[str] = mapped_column("message", JSON()) | 13 | __message: Mapped[str] = mapped_column("message", JSON()) |
| 14 | datetime: Mapped[datetime] | ||
| 12 | 15 | ||
| 13 | @property | 16 | @property |
| 14 | def message(self) -> RichText: | 17 | def message(self) -> RichText: |
| 15 | return RichText.model_validate_json(self.__message) | 18 | return RichText.model_validate_json(self.__message) |
| 16 | 19 | ||
| 17 | @message.setter | 20 | @message.setter |
| 18 | def message_set(self, value: RichText) -> None: | 21 | def message(self, value: RichText) -> None: |
| 19 | self.__message = value.model_dump_json() | 22 | self.__message = value.model_dump_json() |
diff --git a/models/suggest.py b/models/suggest.py index 1ba18a0..a76a004 100644 --- a/models/suggest.py +++ b/models/suggest.py | |||
| @@ -1,3 +1,5 @@ | |||
| 1 | from datetime import datetime | ||
| 2 | |||
| 1 | from sqlalchemy import JSON | 3 | from sqlalchemy import JSON |
| 2 | from sqlalchemy.orm import Mapped, mapped_column | 4 | from sqlalchemy.orm import Mapped, mapped_column |
| 3 | from sqlalchemy.sql.schema import ForeignKey | 5 | from sqlalchemy.sql.schema import ForeignKey |
| @@ -13,11 +15,12 @@ class Suggest(BaseTable): | |||
| 13 | user_id: Mapped[int] = mapped_column(ForeignKey(User.id)) | 15 | user_id: Mapped[int] = mapped_column(ForeignKey(User.id)) |
| 14 | suggested_user_id: Mapped[int] | 16 | suggested_user_id: Mapped[int] |
| 15 | __message: Mapped[str] = mapped_column("message", JSON()) | 17 | __message: Mapped[str] = mapped_column("message", JSON()) |
| 18 | datetime: Mapped[datetime] | ||
| 16 | 19 | ||
| 17 | @property | 20 | @property |
| 18 | def message(self) -> RichText: | 21 | def message(self) -> RichText: |
| 19 | return RichText.model_validate_json(self.__message) | 22 | return RichText.model_validate_json(self.__message) |
| 20 | 23 | ||
| 21 | @message.setter | 24 | @message.setter |
| 22 | def message_set(self, value: RichText) -> None: | 25 | def message(self, value: RichText) -> None: |
| 23 | self.__message = value.model_dump_json() | 26 | self.__message = value.model_dump_json(ensure_ascii=False) |
diff --git a/models/user.py b/models/user.py index 4983a13..690083c 100644 --- a/models/user.py +++ b/models/user.py | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | from datetime import datetime | ||
| 1 | from enum import IntEnum | 2 | from enum import IntEnum |
| 2 | 3 | ||
| 3 | from sqlalchemy.orm import Mapped, mapped_column | 4 | from sqlalchemy.orm import Mapped, mapped_column |
| @@ -16,6 +17,7 @@ class User(BaseTable): | |||
| 16 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=False) | 17 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=False) |
| 17 | role: Mapped[UserRole] = mapped_column(default=UserRole.REGULAR) | 18 | role: Mapped[UserRole] = mapped_column(default=UserRole.REGULAR) |
| 18 | vpn_link: Mapped[str] | 19 | vpn_link: Mapped[str] |
| 20 | datetime: Mapped[datetime] | ||
| 19 | 21 | ||
| 20 | def is_regular(self) -> bool: | 22 | def is_regular(self) -> bool: |
| 21 | return self.role >= UserRole.REGULAR | 23 | return self.role >= UserRole.REGULAR |
