from sqlalchemy import text from sqlalchemy.ext.asyncio import AsyncSession from api.domain.user import User, UserRepository class SqlAlchemyUserRepository(UserRepository): def __init__(self, session: AsyncSession) -> None: self.session = session async def create_user(self, user: User) -> None: stmt = text( """INSERT INTO users (id, name, email, hashed_password) VALUES(:id, :name, :email, :hashed_password) """ ) await self.session.execute( stmt, { "id": str(user.id.value), "name": user.name.value, "email": user.email.value, "hashed_password": user.hashed_password, }, ) async def get_user(self, filter: dict) -> User | None: pass async def get_users(self) -> list[User]: return []