# from fastapi import APIRouter
# from pydantic import BaseModel
# from fastapi import Depends
# from app.dependencies.auth_dependancy import get_current_user

# from app.modules.user_subscription.user_subscription_controller import (
#     UserSubscriptionController
# )

# router = APIRouter(
#     prefix="/user-subscription",
#     tags=["User Subscription"]
# )

# controller = UserSubscriptionController()


# class ActivateSubscriptionRequest(BaseModel):
#     plan_id: str


# # class ActivateSubscriptionRequest(BaseModel):

# #     plan_id:str

# @router.post("/activate")
# async def activate_subscription(

#     request: ActivateSubscriptionRequest,

#     current_user = Depends(
#         get_current_user
#     )

# ):

#     return await controller.activate_subscription(

#         user_id=current_user["_id"],

#         plan_id=request.plan_id
#     )


# @router.get("/active/{user_id}")
# async def get_my_subscription(
#     user_id: str
# ):

#     return await controller.get_my_subscription(
#         user_id
#     )


from fastapi import APIRouter, Depends
from pydantic import BaseModel

from app.dependencies.auth_dependancy import get_current_user

from app.modules.user_subscription.user_subscription_controller import (
    UserSubscriptionController
)

router = APIRouter(

    prefix="/user-subscription",

    tags=["User Subscription"]

)

controller = UserSubscriptionController()


class ActivateSubscriptionRequest(BaseModel):

    plan_id: str


@router.post("/activate")
async def activate_subscription(

    request: ActivateSubscriptionRequest,

    current_user=Depends(

        get_current_user

    )

):

    return await controller.activate_subscription(

        user_id=current_user["_id"],

        plan_id=request.plan_id

    )


@router.get("/me")
async def get_my_subscription(

    current_user=Depends(

        get_current_user

    )

):

    return await controller.get_my_subscription(

        current_user["_id"]

    )