from sqlalchemy.orm import Session from app.core.security import get_password_hash, verify_password from app.models.user import User from app.schemas.user import UserCreate def get_by_email(db: Session, email: str) -> User | None: return db.query(User).filter(User.email == email).first() def create(db: Session, user_in: UserCreate) -> User: user = User( email=user_in.email, hashed_password=get_password_hash(user_in.password), is_active=True, ) db.add(user) db.commit() db.refresh(user) return user def authenticate(db: Session, email: str, password: str) -> User | None: user = get_by_email(db, email) if not user: return None if not verify_password(password, user.hashed_password): return None return user