# For a new basic set of CRUD operations you could just do # from .base import CRUDBase # from app.models.item import Item # from app.schemas.item import ItemCreate, ItemUpdate # item = CRUDBase[Item, ItemCreate, ItemUpdate](Item) from sqlmodel import Session, select from app.core.security import get_password_hash, verify_password from app.models import User, UserCreate from .crud_item import item as item from .crud_user import user as user def create_user(*, session: Session, user_create: UserCreate) -> User: db_obj = User.from_orm( user_create, update={"hashed_password": get_password_hash(user_create.password)} ) session.add(db_obj) session.commit() session.refresh(db_obj) return db_obj def get_user_by_email(*, session: Session, email: str) -> User | None: statement = select(User).where(User.email == email) session_user = session.exec(statement).first() return session_user def authenticate(*, session: Session, email: str, password: str) -> User | None: db_user = get_user_by_email(session=session, email=email) if not db_user: return None if not verify_password(password, db_user.hashed_password): return None return db_user