from typing import Optional from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from models import User from schemas import UserCreate from database import get_db from utils import hash_password router = APIRouter() @router.post("/register", response_model=UserCreate) async def register(user: UserCreate, db: Session = Depends(get_db)): """ Register a new user """ existing_user = db.query(User).filter(User.email == user.email).first() if existing_user: raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="Email already registered") hashed_password = hash_password(user.password) new_user = User( email=user.email, password=hashed_password, address=user.address, dob=user.dob, phone_number=user.phone_number ) db.add(new_user) db.commit() db.refresh(new_user) return new_user