2025-12-23 22:20:42 +03:00

40 lines
1.1 KiB
Python

"""
Доменная сущность User
"""
from datetime import datetime
from uuid import UUID, uuid4
from enum import Enum
class UserRole(str, Enum):
"""Роли пользователей"""
USER = "user"
ADMIN = "admin"
class User:
"""Пользователь системы"""
def __init__(
self,
telegram_id: str,
role: UserRole = UserRole.USER,
user_id: UUID | None = None,
created_at: datetime | None = None,
is_premium: bool = False,
premium_until: datetime | None = None,
questions_used: int = 0
):
self.user_id = user_id or uuid4()
self.telegram_id = telegram_id
self.role = role
self.created_at = created_at or datetime.utcnow()
self.is_premium = is_premium
self.premium_until = premium_until
self.questions_used = questions_used
def is_admin(self) -> bool:
"""проверка, является ли пользователь администратором"""
return self.role == UserRole.ADMIN