"""Per-resource FastAPI routers.

`api.py` does `for r in routers: app.include_router(r)`. New
routers register themselves here in alphabetical order. Helpers
shared by 2+ routers live in `_shared.py` (private to the package).

Every router except ``health`` declares its own
``APIRouter(dependencies=[Depends(matrix_gate)])`` — keep that
invariant here so adding a new router doesn't silently miss the gate.
"""
from fastapi import APIRouter

from cyclone.api_routers import (
    acks,
    activity,
    admin,
    batches,
    claim_acks,
    claims,
    clearhouse,
    config,
    dashboard,
    eligibility,
    health,
    inbox,
    parse,
    payers,
    providers,
    rebill,
    reconciliation,
    remittances,
    submission,
    ta1_acks,
)

routers: list[APIRouter] = [
    acks.router,        # gated
    activity.router,    # gated
    admin.router,       # gated
    batches.router,     # gated
    claim_acks.router,  # gated
    claims.router,      # gated
    clearhouse.router,  # gated
    config.router,      # gated
    dashboard.router,   # gated
    eligibility.router, # gated
    health.router,      # public — health probes must work pre-auth
    inbox.router,       # gated
    parse.router,       # gated
    payers.router,      # gated
    providers.router,   # gated
    rebill.router,      # gated (SP41)
    reconciliation.router, # gated
    remittances.router, # gated
    submission.router,  # gated
    ta1_acks.router,    # gated
]

__all__ = ["routers"]
