import { Router } from 'express';
import { requirePlatformAuth } from '../middleware/auth';
import {
  platformSendOtp, platformVerifyOtp,
  platformStats,
  listOrgs, getOrg, createOrg, renameOrg, suspendOrg, unsuspendOrg,
} from '../controllers/platform.controller';

const router = Router();

// Auth — wholly separate from /api/auth/* so customer and platform
// sessions can't accidentally cross over.
router.post('/auth/send-otp', platformSendOtp);
router.post('/auth/verify-otp', platformVerifyOtp);

router.get('/stats', requirePlatformAuth, platformStats);

// Org management. Every endpoint is gated by requirePlatformAuth so a
// customer JWT can't hit any of these.
router.get('/orgs', requirePlatformAuth, listOrgs);
router.post('/orgs', requirePlatformAuth, createOrg);
router.get('/orgs/:id', requirePlatformAuth, getOrg);
router.patch('/orgs/:id', requirePlatformAuth, renameOrg);
router.post('/orgs/:id/suspend', requirePlatformAuth, suspendOrg);
router.post('/orgs/:id/unsuspend', requirePlatformAuth, unsuspendOrg);

export default router;
