Files
FascioSchoolBot/app/infrastructure/database/crud.py
2025-09-27 10:56:32 +03:00

35 lines
886 B
Python

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