import { Router } from 'express'; import { CreateHostRequest, HostListQuery, HostTimelineQuery, UpdateHostRequest, } from '@vector/shared'; import * as ctrl from '../controllers/hosts.js'; import { requireAuth, requireRole } from '../middleware/auth.js'; import { validate } from '../middleware/validate.js'; const router = Router(); router.get('/', requireAuth, validate('query', HostListQuery), ctrl.list); router.post('/', requireAuth, requireRole('ADMIN'), validate('body', CreateHostRequest), ctrl.create); router.get('/:id', requireAuth, ctrl.get); router.get('/:id/deployed-parts', requireAuth, ctrl.listDeployedParts); router.get('/:id/timeline', requireAuth, validate('query', HostTimelineQuery), ctrl.getTimeline); router.patch('/:id', requireAuth, requireRole('ADMIN'), validate('body', UpdateHostRequest), ctrl.update); router.delete('/:id', requireAuth, requireRole('ADMIN'), ctrl.remove); export default router;