from pydantic import BaseModel, Field from typing import Optional , Dict , Any from datetime import date class ResponseFormatter(BaseModel): endpoint: str = Field(description='Return the exact endpoint from the knowledge base of endpoints.') method: str = Field(description='Return the exact request type from the knowledge base of endpoints. GET or POST ') parameters: Optional[Dict[str, Optional[Any]]] = Field( None, description="Return the dictionary of parameters to pass to the endpoint. Each parameter value can be None if not specified." ) class CompareBodyFormatter(BaseModel): names: list frequency: str class LatestMessageFormatter(BaseModel): latest_message:str class ParameterFormatter(BaseModel): parameters_values:Optional[Dict[str, Optional[Any]]] = Field(None) class EndpointFormatter(BaseModel): endpoint: str class PostingTimeFormatter(BaseModel): start_date: Optional[date] = None end_date: Optional[date] = None influencer_name: str class PeakCommentHourFormatter(BaseModel): start_date: Optional[date] = None end_date: Optional[date] = None influencer_name: str class EmojiCountFormater(BaseModel): top_n: int = 10 influencer_name: str class CommentQualityFormatter(BaseModel): start_date: Optional[date] = None end_date: Optional[date] = None influencer_name: str class BotAndDiversityFormatter(BaseModel): start_date: Optional[date] = None end_date: Optional[date] = None influencer_name: str top_n: int = 10