from api.fetch_api_data import fetch_api_data from api.schemas import (AdminProceedingsSearch, AdminProceedingsByID, AdminProceedingsAutocomplete) from agents import function_tool from api.config import JUSTICE_API_BASE class AdminProceedingsAPI: @function_tool async def admin_proceedings(self, params: AdminProceedingsSearch) -> dict: """ Fetch a list of administrative proceedings from the Justice API with optional filtering. Args: params (AdminProceedingsSearch): Filtering and pagination parameters. Returns: dict: A dictionary containing a list of administrative proceedings and related metadata. """ url = f"{JUSTICE_API_BASE}/v1/spravneKonanie" return await fetch_api_data(icon="✒️", url=url, params=params.model_dump(exclude_none=True)) @function_tool async def admin_proceedings_id(self, params: AdminProceedingsByID) -> dict: """ Fetch detailed information about a specific administrative proceeding by its identifier. Args: params (AdminProceedingsByID): Unique identifier of the administrative proceeding. Returns: dict: Details of the specified administrative proceeding. """ url = f"{JUSTICE_API_BASE}/v1/spravneKonanie/{params.id}" return await fetch_api_data(icon="✒️", url=url, params={}) @function_tool async def admin_proceedings_autocomplete(self, params: AdminProceedingsAutocomplete) -> dict: """ Fetch autocomplete suggestions for administrative proceeding search terms. Args: params (AdminProceedingsAutocomplete): Parameters for autocomplete query (e.g., partial text). Returns: dict: Suggested values matching the input query. """ url = f"{JUSTICE_API_BASE}/v1/spravneKonanie/autocomplete" return await fetch_api_data(icon="✒️", url=url, params=params.model_dump(exclude_none=True))