/** * @ai-summary Express routes for vehicles API * @ai-context Defines REST endpoints with auth middleware */ import { Router } from 'express'; import { VehiclesController } from './vehicles.controller'; import { authMiddleware } from '../../../core/security/auth.middleware'; export function registerVehiclesRoutes(): Router { const router = Router(); const controller = new VehiclesController(); // Dropdown Data Routes (no auth required for form population) router.get('/api/vehicles/dropdown/makes', controller.getDropdownMakes); router.get('/api/vehicles/dropdown/models/:make', controller.getDropdownModels); router.get('/api/vehicles/dropdown/transmissions', controller.getDropdownTransmissions); router.get('/api/vehicles/dropdown/engines', controller.getDropdownEngines); router.get('/api/vehicles/dropdown/trims', controller.getDropdownTrims); // All other vehicle routes require authentication router.use(authMiddleware); // CRUD Routes router.post('/api/vehicles', controller.createVehicle); router.get('/api/vehicles', controller.getUserVehicles); router.get('/api/vehicles/:id', controller.getVehicle); router.put('/api/vehicles/:id', controller.updateVehicle); router.delete('/api/vehicles/:id', controller.deleteVehicle); return router; }