1d53e81d5e
Adds /manufacturers/:id with vendor-wide KPIs, top MPNs by units, failures by MPN, category mix, past-EOL exposure, and a filtered PartModels table. Wires upstream links from PartDetail and PartModelDetail so the manufacturer name is a navigable anchor. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
21 lines
850 B
TypeScript
21 lines
850 B
TypeScript
import { Router } from 'express';
|
|
import {
|
|
CreateManufacturerRequest,
|
|
PaginationQuery,
|
|
UpdateManufacturerRequest,
|
|
} from '@vector/shared';
|
|
import * as ctrl from '../controllers/manufacturers.js';
|
|
import { requireAuth, requireRole } from '../middleware/auth.js';
|
|
import { validate } from '../middleware/validate.js';
|
|
|
|
const router = Router();
|
|
|
|
router.get('/', requireAuth, validate('query', PaginationQuery), ctrl.list);
|
|
router.get('/:id', requireAuth, ctrl.get);
|
|
router.get('/:id/insights', requireAuth, ctrl.getInsights);
|
|
router.post('/', requireAuth, requireRole('ADMIN'), validate('body', CreateManufacturerRequest), ctrl.create);
|
|
router.patch('/:id', requireAuth, requireRole('ADMIN'), validate('body', UpdateManufacturerRequest), ctrl.update);
|
|
router.delete('/:id', requireAuth, requireRole('ADMIN'), ctrl.remove);
|
|
|
|
export default router;
|