from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from .models import User async def get_user_by_tg_id(session: AsyncSession, user_tg_id: int) -> User | None: result = await session.execute(select(User).where(User.tg_id == user_tg_id)) return result.scalar_one_or_none() async def create_user( session: AsyncSession, tg_id: int, fullname: str, phone: str = "", role: str = "user", ) -> User: user = User(tg_id=tg_id, fullname=fullname, role=role, phone=phone) session.add(user) await session.commit() return user async def update_user( session: AsyncSession, tg_id: int, fullname: str = "", phone: str = "" ) -> None: user = await get_user_by_tg_id(session, tg_id) if fullname: user.fullname = fullname if phone: user.phone = phone await session.commit() return user