from core.api.fetch_api_data import fetch_api_data from core.api.schemas import Decision, DecisionID, DecisionAutocomplete from agents import function_tool BASE_URL = 'https://obcan.justice.sk/pilot/api/ress-isu-service' class DecisionsAPI: @function_tool async def decision(self, params: Decision) -> dict: """ Fetch a list of decisions from the Justice API with optional filtering. Args: params (Decision): Filtering and pagination parameters. Returns: dict: A dictionary containing a list of decisions and related metadata. """ url = f"{BASE_URL}/v1/rozhodnutie" return await fetch_api_data(icon="⚖️️", url=url, params=params.model_dump(exclude_none=True)) @function_tool async def decision_id(self, params: DecisionID) -> dict: """ Fetch detailed information about a specific decision by its identifier. Args: params (DecisionID): Unique identifier of the decision. Returns: dict: Details of the specified decision. """ url = f"{BASE_URL}/v1/rozhodnutie/{params.id}" return await fetch_api_data(icon="⚖️️", url=url, params=params.model_dump(exclude_none=True)) @function_tool async def decision_autocomplete(self, params: DecisionAutocomplete) -> dict: """ Fetch autocomplete suggestions for decision-related search terms. Args: params (DecisionAutocomplete): Parameters for autocomplete. Returns: dict: Suggested values matching the input query. """ url = f"{BASE_URL}/v1/rozhodnutie/autocomplete" return await fetch_api_data(icon="⚖️️", url=url, params=params.model_dump(exclude_none=True))