const express = require('express'); const router = require('express').Router(); const multer = require('multer'); const upload = multer({ storage: multer.memoryStorage() }); const controller = require('../../controllers/admin/assets.controller'); const { sensitiveOpsLimiter } = require('../../middleware/rateLimiter.middleware'); // ─── Static routes first ────────────────────────────────────────────────────── router.get('/archived', controller.getArchivedAssets); router.get('/field-values', controller.getAssetFieldValues); // ← must be before /:assetId router.delete('/bulk', sensitiveOpsLimiter, controller.archiveAssets); router.patch('/bulk-restore', controller.restoreAssets); // ─── Collection ─────────────────────────────────────────────────────────────── router.get('/', controller.getAssets); router.post('/', upload.fields([{ name: 'file', maxCount: 1 }, { name: 'thumbnail', maxCount: 1 }]), controller.uploadAsset); // ─── Dynamic routes last ────────────────────────────────────────────────────── router.get('/:assetId', controller.getAsset); router.patch('/:assetId', sensitiveOpsLimiter, upload.fields([{ name: 'file', maxCount: 1 }]), controller.updateAsset); router.patch('/:assetId/restore', sensitiveOpsLimiter, controller.restoreAsset); router.delete('/:assetId', sensitiveOpsLimiter, controller.archiveAsset); module.exports = router;