Skip to content
This repository was archived by the owner on Jun 7, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/repositories/chat_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down
13 changes: 12 additions & 1 deletion app/routes/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

1 change: 1 addition & 0 deletions app/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down