import requests


class DhiraaguAPI:
    def __init__(
        self,
        phone: str = None,
        otp: str = None,
        token: str = None,
        account: str = None,
    ) -> None:
        self.phone = phone
        self.otp = otp
        self.token = token
        self.account = account
        self.headers = {
            'Host': 'app-production.dhiraagu.com.mv',
            'Content-Type': 'application/json',
            'Connection': 'keep-alive',
            'Accept': '*/*',
            'User-Agent': 'MyDhiraagu/5.0 (mv.com.dhiraagu.app; build:1; iOS 17.5.0) Alamofire/5.6.1',
            'Accept-Language': 'en-US;q=1.0, dv-MV;q=0.9, ar-MV;q=0.8',
            # 'Content-Length': '33',
            # 'Accept-Encoding': 'br;q=1.0, gzip;q=0.9, deflate;q=0.8',
        }
        if self.token:
            self.headers['Authorization'] = f'Bearer {self.token}'

    def login(self):
        data = requests.post(
            'https://app-production.dhiraagu.com.mv/auth',
            json={
                'number': self.phone,
                'otp': self.otp,
            },
        )
        return data.json()

    def bills(self):
        return requests.get(
            f'https://app-production.dhiraagu.com.mv/io/v1/info/subscribers/{self.account}/liberate/billinfo',
            headers=self.headers,
        ).json()