const express = require('express'); const router = express.Router(); const VehicleType = require('../models/VehicleType'); const { authMiddleware, requireRole } = require('../middleware/auth'); // 获取所有车型(所有登录用户均可浏览) router.get('/', authMiddleware, async (req, res) => { try { const filter = {}; if (req.query.storeId) filter.storeId = req.query.storeId; const vehicleTypes = await VehicleType.find(filter).sort({ createdAt: -1 }); res.json({ success: true, data: vehicleTypes }); } catch (error) { res.status(500).json({ success: false, message: '服务器内部错误' }); } }); // 创建车型(需 admin 或 store) router.post('/', authMiddleware, requireRole('admin', 'store'), async (req, res) => { try { const vehicleType = new VehicleType(req.body); await vehicleType.save(); res.status(201).json({ success: true, data: vehicleType }); } catch (error) { res.status(400).json({ success: false, message: '服务器内部错误' }); } }); // 更新车型(需 admin 或 store) router.put('/:id', authMiddleware, requireRole('admin', 'store'), async (req, res) => { try { const vehicleType = await VehicleType.findByIdAndUpdate( req.params.id, req.body, { new: true, runValidators: true } ); if (!vehicleType) { return res.status(404).json({ success: false, message: '车型不存在' }); } res.json({ success: true, data: vehicleType }); } catch (error) { res.status(400).json({ success: false, message: '服务器内部错误' }); } }); // 删除车型(需 admin 或 store) router.delete('/:id', authMiddleware, requireRole('admin', 'store'), async (req, res) => { try { const vehicleType = await VehicleType.findByIdAndDelete(req.params.id); if (!vehicleType) { return res.status(404).json({ success: false, message: '车型不存在' }); } res.json({ success: true, message: '车型已删除' }); } catch (error) { res.status(500).json({ success: false, message: '服务器内部错误' }); } }); module.exports = router;