from typing import Optional
from sqlalchemy.orm import Session
from app.models.user import User
from app.repositories.base import BaseRepository

class UserRepository(BaseRepository[User]):
    """Repository handling database queries for the User model."""
    
    def get_by_email(self, db: Session, email: str) -> Optional[User]:
        """Fetch a user record by email address."""
        # Gunakan query case-insensitive untuk email
        return db.query(self.model).filter(self.model.email == email.lower()).first()

user_repository = UserRepository(User)
