from datetime import datetime, timedelta from fastapi import APIRouter, Depends, Query from sqlalchemy.ext.asyncio import AsyncSession from app.database import get_db from app.dependencies import get_current_admin from app.services.admin_service import list_admin_matches router = APIRouter() @router.get("") async def get_matches( user_id: int | None = Query(default=None), start_date: str | None = Query(default=None), end_date: str | None = Query(default=None), admin_payload: dict = Depends(get_current_admin), session: AsyncSession = Depends(get_db), ) -> dict: _ = admin_payload parsed_start = datetime.fromisoformat(start_date) if start_date else None parsed_end = datetime.fromisoformat(end_date) + timedelta(days=1) if end_date else None data = await list_admin_matches(session, user_id=user_id, start_date=parsed_start, end_date=parsed_end) return {"code": 0, "message": "ok", "data": data}