from fastapi import (
    APIRouter,
    Header,
    HTTPException
)

from app.modules.device_limit.device_limit_controller import (
    DeviceLimitController
)


router = APIRouter(
    prefix="/device-limit",
    tags=["Device Limit"]
)


controller = DeviceLimitController()


# ============================================================
# GET DEVICE USAGE
# ============================================================

@router.get("/usage")
async def get_usage(
    device_id: str = Header(
        ...,
        alias="X-Device-Id"
    )
):

    if not device_id:

        raise HTTPException(
            status_code=400,
            detail="X-Device-Id is required"
        )

    return await controller.get_usage(
        device_id
    )


# ============================================================
# REWARDED AD COMPLETED
# ============================================================

@router.post("/reward-ad")
async def reward_ad_completed(
    device_id: str = Header(
        ...,
        alias="X-Device-Id"
    )
):

    if not device_id:

        raise HTTPException(
            status_code=400,
            detail="X-Device-Id is required"
        )

    return await controller.reward_ad_completed(
        device_id
    )