import { Router } from 'express';
import authRoutes from './auth.routes';
import meRoutes from './me.routes';
import publicRoutes from './public.routes';
import hostsRoutes from './hosts.routes';
import embedRoutes from './embed.routes';
import oauthRoutes from './oauth.routes';
import n8nRoutes from './n8n.routes';
import { HealthController } from '../controllers/HealthController';
import { TimezoneController } from '../controllers/TimezoneController';
import { ConfigController } from '../controllers/ConfigController';

const router = Router();
const health = new HealthController();
const timezoneController = new TimezoneController();
const configController = new ConfigController();

router.get('/health', health.health);
router.get('/health/db', health.healthDb);
router.get('/timezones', timezoneController.list);
router.get('/config/public', configController.getPublic);

router.use('/auth', authRoutes);
router.use('/me', meRoutes);
router.use('/public', publicRoutes);
router.use('/hosts', hostsRoutes);
router.use('/embed', embedRoutes);
router.use('/oauth', oauthRoutes);
/** HTTPS front door → n8n book_slot webhook (Sarvam requires https). */
router.use('/integrations/n8n', n8nRoutes);

export default router;
