/**
 * Route table. Two branches with distinct CORS policies (PLANNING.md §10):
 *
 *   public  (publicCors)  — /health, /spaces/:slug/gallery, /enquiries
 *   admin   (adminCors)   — /admin/* in step 4+
 *
 * Paths have NO version prefix — public routes mount at the root (PLANNING.md §1).
 */
import { Router } from 'express';
import { adminCors, publicCors } from '../middleware/cors';
import { healthRouter } from './health';
import { galleryRouter } from '../modules/media/gallery.routes';
import { mediaAdminRouter } from '../modules/media/media.routes';
import { enquiryRouter } from '../modules/enquiry/enquiry.routes';
import { enquiryAdminRouter } from '../modules/enquiry/enquiry.admin.routes';
import { userAdminRouter } from '../modules/admin/user.routes';
import { authRouter } from '../modules/auth/auth.routes';

export const routes = Router();

// ─── Public ────────────────────────────────────────────────────────────────
const publicRouter = Router();
publicRouter.use(healthRouter);
publicRouter.use(galleryRouter);
publicRouter.use(enquiryRouter);
routes.use(publicCors, publicRouter);

// ─── Admin ─────────────────────────────────────────────────────────────────
const adminRouter = Router();
adminRouter.use(authRouter);
adminRouter.use(mediaAdminRouter);
adminRouter.use(enquiryAdminRouter);
adminRouter.use(userAdminRouter);
routes.use('/admin', adminCors, adminRouter);
