Spaces:
Configuration error
Configuration error
| """Analytics reports API router.""" | |
| from fastapi import APIRouter, Depends, status | |
| from app.core.logging import get_logger | |
| from app.dependencies.auth import get_current_user, TokenUser | |
| from app.reports.schemas.schema import ReportCreate, ReportResponse, ReportListRequest, StatusResponse | |
| from app.reports.services.service import ReportService | |
| from app.reports.sales.router import router as sales_router | |
| from app.reports.purchases.router import router as purchases_router | |
| from app.reports.inventory.router import router as inventory_router | |
| from app.reports.customers.router import router as customers_router | |
| from app.reports.employees.router import router as employees_router | |
| from app.reports.spa_bookings.router import router as spa_bookings_router | |
| from app.reports.financial.router import router as financial_router | |
| logger = get_logger(__name__) | |
| router = APIRouter(prefix="/reports", tags=["reports"]) | |
| async def create_report( | |
| payload: ReportCreate, | |
| current_user: TokenUser = Depends(get_current_user), | |
| ): | |
| report_id = await ReportService.create_report(payload, created_by=current_user.user_id) | |
| return StatusResponse(success=True, message="Report created", report_id=report_id) | |
| async def get_report( | |
| report_id: str, | |
| current_user: TokenUser = Depends(get_current_user), | |
| ): | |
| return await ReportService.get_report(report_id) | |
| async def list_reports( | |
| payload: ReportListRequest, | |
| current_user: TokenUser = Depends(get_current_user), | |
| ): | |
| results = await ReportService.list_reports( | |
| filters=payload.filters, | |
| skip=payload.skip, | |
| limit=payload.limit, | |
| projection_list=payload.projection_list, | |
| ) | |
| total = await ReportService.count_reports(payload.filters) | |
| return {"success": True, "total": total, "skip": payload.skip, "limit": payload.limit, "data": results} | |
| router.include_router(sales_router) | |
| router.include_router(purchases_router) | |
| router.include_router(inventory_router) | |
| router.include_router(customers_router) | |
| router.include_router(employees_router) | |
| router.include_router(spa_bookings_router) | |
| router.include_router(financial_router) | |