from typing import Sequence from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy import select from models.users import User async def get_users(db: AsyncSession) -> Sequence[User]: users = await db.execute(select(User)) return users.scalars().all() async def get_user_by_id(id: int, db: AsyncSession) -> User | None: user = await db.execute(select(User).where(User.id == id)) return user.scalar_one_or_none() async def create_user(user: User, db: AsyncSession) -> User: db.add(user) await db.commit() await db.refresh(user) return user async def find_user_by_email(email: str, db: AsyncSession) -> User | None: user = await db.execute(select(User).where(User.email == email)) return user.scalar_one_or_none()