# from fastapi import APIRouter  # type: ignore[import]
# from pydantic import BaseModel
# from app.modules.user.user_controller import UserController

# router = APIRouter()
# Controller = UserController()


# class RegisterRequest(BaseModel):
#     phone: str
# class VerifyRequest(BaseModel):
#     phone: str
#     password:str
#     otpCode:str

# class LoginRequest(BaseModel):
#     phone: str
#     password:str


# @router.post("/register")
# async def register_user(req: RegisterRequest):
#     result = await Controller.register(
#         req
#     )
#     return result

# @router.post("/verifyOTP")
# async def verifyOTP(req:VerifyRequest):
#     result = await Controller.verify_otp(req)
#     return result

# @router.post("/login")
# async def login(req:LoginRequest):
#     result = await Controller.login(req)
#     return result


from fastapi import APIRouter
from pydantic import BaseModel

from app.modules.user.user_controller import UserController


router = APIRouter(
    prefix="/user",
    tags=["User"]
)

controller = UserController()


class RegisterRequest(BaseModel):
    phone: str


class VerifyOtpRequest(BaseModel):
    phone: str
    password: str
    otpCode: str


class LoginRequest(BaseModel):
    phone: str
    password: str


@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)


@router.post("/login")
async def login(request: LoginRequest):
    return await controller.login(request)