from fastapi import APIRouter
from pydantic import BaseModel

from app.modules.user.user_controller import UserController

router = APIRouter(
    prefix="/user",
    tags=["User"]
)

controller = UserController()  


# ===========================
# Request Models
# ===========================

class RegisterRequest(BaseModel):
    phone: str


class VerifyOtpRequest(BaseModel):
    phone: str
    password: str
    otpCode: str


class LoginRequest(BaseModel):
    phone: str
    password: str


class ForgotPasswordRequest(BaseModel):
    phone: str


# class VerifyForgotOtpRequest(BaseModel):
#     phone: str
#     otpCode: str


class ResetPasswordRequest(BaseModel):
    phone: str
    otpCode: str
    newPassword: str


# ===========================
# Register APIs
# ===========================

@router.post("/register")
async def register(request: RegisterRequest):
    return await controller.register(request)


@router.post("/verify-otp")
async def verify_otp(request: VerifyOtpRequest):
    return await controller.verify_otp(request)


# ===========================
# Login API
# ===========================

@router.post("/login")
async def login(request: LoginRequest):
    return await controller.login(request)


# ===========================
# Forgot Password APIs
# ===========================

@router.post("/forgot-password")
async def forgot_password(request: ForgotPasswordRequest):
    return await controller.forgot_password(request)


# @router.post("/verify-forgot-otp")
# async def verify_forgot_otp(request: VerifyForgotOtpRequest):
#     return await controller.verify_forgot_otp(request)


@router.post("/reset-password")
async def reset_password(request: ResetPasswordRequest):
    return await controller.reset_password(request)












































