from fastapi import HTTPException

from app.modules.device_limit.device_limit_repository import (
    DeviceLimitRepository
)


class DeviceLimitController:

    def __init__(self):

        self.repository = DeviceLimitRepository()

    # ============================================================
    # GET DEVICE USAGE
    # ============================================================

    async def get_usage(
        self,
        device_id: str
    ):

        try:

            usage = await self.repository.get_usage(
                device_id
            )

            return {
                "success": True,
                "data": usage
            }

        except Exception as e:

            raise HTTPException(
                status_code=500,
                detail=str(e)
            )

    # ============================================================
    # REWARDED AD COMPLETED
    # ============================================================

    async def reward_ad_completed(
        self,
        device_id: str
    ):

        try:

            result = await self.repository.add_reward(
                device_id
            )

            return {
                "success": True,
                "message": "Reward added successfully",
                "data": result
            }

        except Exception as e:

            raise HTTPException(
                status_code=500,
                detail=str(e)
            )