from fastapi import APIRouter, Depends from fastapi.responses import StreamingResponse from sqlalchemy.ext.asyncio import AsyncSession from app.database import get_db from app.middleware.auth import get_current_user, require_director_or_leader from app.services.excel_export import export_weekly_report router = APIRouter(prefix="/export", tags=["Export"]) @router.get("/weekly-report") async def download_weekly_report( current_user: dict = Depends(require_director_or_leader), db: AsyncSession = Depends(get_db), ): """Export this week's report as a 4-sheet .xlsx file.""" excel_bytes = await export_weekly_report(db) return StreamingResponse( excel_bytes, media_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", headers={"Content-Disposition": "attachment; filename=weekly_report.xlsx"}, )