from sqlalchemy.orm import Session
from src.apps.users.models import User
from src.apps.users.schemas import UserCreate, UserResponse
from src.apps.auth.services import hash_password  # Ensure password hashing is done

def create_user(user_data: UserCreate, db: Session) -> UserResponse:
    # Hash the password before storing it
    hashed_password = hash_password(user_data.password)
    
    # Create user instance
    new_user = User(
        name=user_data.name,
        email=user_data.email,
        password_hash =hashed_password,
        role=user_data.role
    )

    # Save to DB
    db.add(new_user)
    db.commit()
    db.refresh(new_user)

    # Return only non-sensitive data
    return UserResponse(
        name=new_user.name,
        email=new_user.email,
        role=new_user.role
    )
