from fastapi import APIRouter, Depends, HTTPException from core.database import fake_users_db import uuid router = APIRouter() @router.post("/signup") async def signup_handler( username: str, email: str, password: str, full_name: str, role: str = "student" ): """School portal signup endpoint""" if username in fake_users_db: raise HTTPException(status_code=400, detail="Username already exists") if role not in ["student", "teacher", "admin"]: raise HTTPException(status_code=400, detail="Invalid role specified") user_id = str(uuid.uuid4()) fake_users_db[username] = { "id": user_id, "email": email, "password": password, "full_name": full_name, "role": role, "disabled": False, "verified": False } return { "message": "School portal account created successfully", "user_id": user_id, "username": username, "role": role, "next_steps": [ "Verify your email address", "Complete your student profile", "Upload required documents" ], "features": { "dashboard_access": True, "course_enrollment": role == "student", "grade_viewing": True } }