from typing import List, Dict, Any, Optional from fastapi import APIRouter, Query from app.summary.service import SummaryService router = APIRouter(prefix="/summary", tags=["summary"]) @router.get("/message-statistics", response_model=List[Dict[str, Any]]) async def get_message_statistics( start_date: Optional[str] = Query(None, description="开始日期 (格式: YYYY-MM-DD)"), end_date: Optional[str] = Query(None, description="结束日期 (格式: YYYY-MM-DD)") ): """ 获取按日期和发送者分组的消息统计数据 SQL逻辑: SELECT DATE(created_at) AS created_at, from_user FROM archive_messages GROUP BY DATE(created_at), from_user ORDER BY created_at DESC; """ if start_date or end_date: return await SummaryService.get_message_statistics_by_date(start_date, end_date) return await SummaryService.get_message_statistics()