from __future__ import annotations

import urllib.parse
from typing import Any, Dict, Optional

from ..client import Client

class ReportsResource:
    def __init__(self, client: Client) -> None:
        self._client = client

    def getStatistics(self, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("GET", "/reports/getStatistics", query=query, body=None)

    def getUserStatisticsUserId(self, userId, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("GET", "/reports/getUserStatistics/" + urllib.parse.quote(str(userId)), query=query, body=None)

    def getAuthorStatisticsAuthorId(self, authorId, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("GET", "/reports/getAuthorStatistics/" + urllib.parse.quote(str(authorId)), query=query, body=None)

    def getAllUsersStatistics(self, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("GET", "/reports/getAllUsersStatistics", query=query, body=None)

    def getAllAuthorsStatistics(self, *, query: Optional[Dict[str, Any]] = None):
        return self._client.request("GET", "/reports/getAllAuthorsStatistics", query=query, body=None)
