import { Router } from "express"; import { adminAuthRouter } from "./admin-auth.routes.js"; import { adminCatalogRouter } from "./admin-catalog.routes.js"; import { adminContactRouter } from "./admin-contact.routes.js"; import { adminMetricsRouter } from "./admin-metrics.routes.js"; import { adminTechStepsRouter } from "./admin-tech-steps.routes.js"; import { adminToursRouter } from "./admin-tours.routes.js"; /** * Aggregator for the admin application's API surface, mounted at * `/admin/api` in `app.ts` (not bare `/admin` — see that mount point's own * comment for why: it would collide with apps/web's `/admin/*` page * routes). Every sub-router here backs one of those pages — * `/admin/api/auth` is public (login), everything added later * (`/admin/api/metrics`, `/admin/api/tech-steps/*`, `/admin/api/catalog/*`) * sits behind `requireAdmin` (`middlewares/require-admin.ts`). * * Monitoring has **no** REST route here on purpose — it's pushed over * WebSocket instead (`lib/monitoring-broadcast.service.ts`, wired in * `server.ts`), not requested per-page-load. See that service's doc * comment for the full mechanism. */ export const adminRouter = Router(); adminRouter.use("/auth", adminAuthRouter); adminRouter.use("/metrics", adminMetricsRouter); adminRouter.use("/tech-steps", adminTechStepsRouter); adminRouter.use("/catalog", adminCatalogRouter); adminRouter.use("/tours", adminToursRouter); adminRouter.use("/contact", adminContactRouter);