19 lines
573 B
Python
Executable File
19 lines
573 B
Python
Executable File
from __future__ import annotations
|
|
|
|
from sqlalchemy import select
|
|
|
|
from rehearsalhub.db.models import Member
|
|
from rehearsalhub.repositories.base import BaseRepository
|
|
|
|
|
|
class MemberRepository(BaseRepository[Member]):
|
|
model = Member
|
|
|
|
async def get_by_email(self, email: str) -> Member | None:
|
|
stmt = select(Member).where(Member.email == email.lower())
|
|
result = await self.session.execute(stmt)
|
|
return result.scalar_one_or_none()
|
|
|
|
async def email_exists(self, email: str) -> bool:
|
|
return await self.get_by_email(email) is not None
|