from sqlalchemy import select from sqlalchemy.orm import Session from models.family import Users from schemas.user import UserCreate, UserUpdate def get_user_by_id(db: Session, user_id: int) -> Users | None: result = db.execute(select(Users).where(Users.id == user_id)) return result.scalar_one_or_none() def create_user(db: Session, user: UserCreate) -> Users: user = Users(**user.model_dump()) db.add(user) db.commit() db.refresh(user) return user def update_user(db: Session, user_id: int, obj_in: UserUpdate) -> Users | None: user = get_user_by_id(db, user_id) if not user: return None for field, value in obj_in.model_dump(exclude_unset=True).items(): setattr(user, field, value) db.commit() db.refresh(user) return user def delete_user(db: Session, user_id: int) -> bool: user = get_user_by_id(db, user_id) if not user: return False db.delete(user) db.commit() return True