"""Reports module router factory."""

from fastapi import APIRouter


def create_reports_router() -> APIRouter:
    """
    Create and configure Reports module router.

    Includes all report-related endpoints:
    - /invoices - Invoice management
    - /dashboard - Dashboard and metrics
    - /treasury - Treasury operations
    - /trial-balance - Trial balance reports
    - /cache - Cache management

    Returns:
        APIRouter: Configured router for reports module
    """
    router = APIRouter()

    # Import routers here to avoid circular imports
    from .invoices import router as invoices_router
    from .dashboard import router as dashboard_router
    from .treasury import router as treasury_router
    from .trial_balance import router as trial_balance_router
    from .cache import router as cache_router

    # Include all sub-routers (no prefix - already prefixed in main.py with /api/reports)
    router.include_router(invoices_router, prefix="/invoices", tags=["reports-invoices"])
    router.include_router(dashboard_router, prefix="/dashboard", tags=["reports-dashboard"])
    router.include_router(treasury_router, prefix="/treasury", tags=["reports-treasury"])
    router.include_router(trial_balance_router, prefix="/trial-balance", tags=["reports-trial-balance"])
    router.include_router(cache_router, prefix="/cache", tags=["reports-cache"])

    return router
