From 75e99ca0712a2c09230e5c6f8d093dc526cc717d Mon Sep 17 00:00:00 2001 From: Tolmachev Igor Date: Mon, 20 Apr 2026 20:56:35 +0300 Subject: Add users command --- models/user.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'models/user.py') diff --git a/models/user.py b/models/user.py index 690083c..896ff3b 100644 --- a/models/user.py +++ b/models/user.py @@ -1,11 +1,44 @@ from datetime import datetime from enum import IntEnum +from typing import Self +from aiogram.types import Chat +from aiogram.types import User as TgUser +from pydantic import BaseModel from sqlalchemy.orm import Mapped, mapped_column from models import BaseTable +class UserCache(BaseModel): + id: int + username: str | None = None + full_name: str + + @classmethod + def from_chat(cls, chat: Chat) -> Self: + return cls( + id=chat.id, + username=chat.username, + full_name=chat.full_name, + ) + + @classmethod + def from_user(cls, user: TgUser) -> Self: + return cls( + id=user.id, + username=user.username, + full_name=user.full_name, + ) + + @property + def mention(self) -> str: + if self.username is not None: + return f'{self.full_name}' + else: + return f'{self.full_name}' + + class UserRole(IntEnum): REGULAR = 0 ADMIN = 1 -- cgit v1.3