from core.api.fetch_api_data import fetch_api_data from core.api.schemas import (CivilProceedings, CivilProceedingsID, CivilProceedingsAutocomplete) from agents import function_tool BASE_URL = "https://obcan.justice.sk/pilot/api/ress-isu-service" class CivilProceedingsAPI: @function_tool async def civil_proceedings(self, params: CivilProceedings) -> dict: """ Fetch a list of civil proceedings and publicly announced judgments from the Justice API with optional filtering. Args: params (CivilProceedings): Filtering and pagination parameters. Returns: dict: A dictionary containing a list of civil proceedings and related metadata. """ url = f"{BASE_URL}/v1/obcianPojednavania" return await fetch_api_data(icon="🖊️", url=url, params=params.model_dump(exclude_none=True)) @function_tool async def civil_proceedings_id(self, params: CivilProceedingsID) -> dict: """ Fetch detailed information about a specific civil proceeding and publicly announced judgment by its identifier. Args: params (CivilProceedingsID): Unique identifier of the civil proceeding. Returns: dict: Details of the specified civil proceeding and judgment. """ url = f"{BASE_URL}/v1/obcianPojednavania/{params.id}" return await fetch_api_data(icon="🖊️", url=url, params=params.model_dump(exclude_none=True)) @function_tool async def civil_proceedings_autocomplete(self, params: CivilProceedingsAutocomplete) -> dict: """ Fetch autocomplete suggestions for civil proceeding search terms. Args: params (CivilProceedingsAutocomplete): Parameters for autocomplete query (e.g., partial text). Returns: dict: Suggested values matching the input query. """ url = f"{BASE_URL}/v1/obcianPojednavania/autocomplete" return await fetch_api_data(icon="🖊️", url=url, params=params.model_dump(exclude_none=True))