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/user.py | |
| parent | 536d022e8a55f6e53f01dfb7e0fae2ef24385aad (diff) | |
| download | vpn_manager_bot-bc7f486aa7b543a934f4cf23dc80a95f44afcb64.tar.gz vpn_manager_bot-bc7f486aa7b543a934f4cf23dc80a95f44afcb64.zip | |
Add initial database migration
Diffstat (limited to 'models/user.py')
| -rw-r--r-- | models/user.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/models/user.py b/models/user.py index 7118725..4983a13 100644 --- a/models/user.py +++ b/models/user.py | |||
| @@ -1,9 +1,24 @@ | |||
| 1 | from enum import IntEnum | ||
| 2 | |||
| 1 | from sqlalchemy.orm import Mapped, mapped_column | 3 | from sqlalchemy.orm import Mapped, mapped_column |
| 2 | 4 | ||
| 3 | from models import BaseTable | 5 | from models import BaseTable |
| 4 | 6 | ||
| 5 | 7 | ||
| 8 | class UserRole(IntEnum): | ||
| 9 | REGULAR = 0 | ||
| 10 | ADMIN = 1 | ||
| 11 | |||
| 12 | |||
| 6 | class User(BaseTable): | 13 | class User(BaseTable): |
| 7 | __tablename__ = "user" | 14 | __tablename__ = "user" |
| 8 | 15 | ||
| 9 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=False) | 16 | id: Mapped[int] = mapped_column(primary_key=True, autoincrement=False) |
| 17 | role: Mapped[UserRole] = mapped_column(default=UserRole.REGULAR) | ||
| 18 | vpn_link: Mapped[str] | ||
| 19 | |||
| 20 | def is_regular(self) -> bool: | ||
| 21 | return self.role >= UserRole.REGULAR | ||
| 22 | |||
| 23 | def is_admin(self) -> bool: | ||
| 24 | return self.role == UserRole.ADMIN | ||
