diff --git a/app/repositories/chat_repository.py b/app/repositories/chat_repository.py index 23cdac0..d22cfcb 100644 --- a/app/repositories/chat_repository.py +++ b/app/repositories/chat_repository.py @@ -170,6 +170,7 @@ async def get_chat_stats(self, start_date: Optional[str] = None, end_date: Optio "total_chats": total_chats, "total_messages": total_messages, "total_chatbot_messages": total_chatbot_messages, + "total_rated_messages": rated_messages_count, "total_user_messages": total_user_messages, "average_messages_per_user": round(average_messages_per_user, 2), "average_messages_per_chat": round(average_messages_per_chat, 2), diff --git a/app/routes/chat.py b/app/routes/chat.py index 35accc9..ee66c0a 100644 --- a/app/routes/chat.py +++ b/app/routes/chat.py @@ -284,11 +284,22 @@ async def rate_message( @router.get("/stats", response_model=schemas.Stats) async def get_global_stats( - current_user=Depends(verify_admin), # Usa verify_user se non ti serve il controllo admin + current_user=Depends(verify_admin), startDate: Optional[str] = Query(None, description="Data di inizio in formato ISO (YYYY-MM-DD)"), endDate: Optional[str] = Query(None, description="Data di fine in formato ISO (YYYY-MM-DD)"), chat_repository=Depends(get_chat_repository), ): + """ + Ritorna le statistiche filtrate in base alla data di inizio e fine. + + ### Args: + * **start_date**: data di inizio ricerca (opzionale). + * **end_date**: data di fine ricerca (opzionale). + + ### Raises: + * **HTTPException.HTTP_400_BAD_REQUEST**: Se l'utente non รจ autenticato o se si verifica un errore durante il recupero delle statistiche. + * **HTTPException.HTTP_500_INTERNAL_SERVER_ERROR**: Se si verifica un errore durante il recupero delle statistiche. + """ stats = await chat_repository.get_chat_stats(start_date=startDate, end_date=endDate) return stats diff --git a/app/schemas.py b/app/schemas.py index 8885bcc..940c76c 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -185,6 +185,7 @@ class Stats(BaseModel): total_chats: int total_messages: int total_chatbot_messages: int + total_rated_messages: int total_user_messages: int average_messages_per_chat: float average_messages_per_user: float