// routes/admin/notificationBroadcasts.routes.js const router = require('express').Router(); const controller = require('../../controllers/admin/notificationBroadcasts.controller'); const { sensitiveOpsLimiter } = require('../../middleware/rateLimiter.middleware'); // ─── Static routes first ────────────────────────────────────────────────────── router.get('/archived', controller.getArchivedBroadcasts); router.delete('/bulk', sensitiveOpsLimiter, controller.archiveBroadcasts); router.patch('/bulk-restore', controller.restoreBroadcasts); router.delete('/bulk/permanent', sensitiveOpsLimiter, controller.permanentlyDeleteBroadcasts); router.get('/sticky-banner', controller.getStickyBannerSetting); router.patch('/sticky-banner', sensitiveOpsLimiter, controller.updateStickyBannerSetting); // ─── Collection ─────────────────────────────────────────────────────────────── router.get('/', controller.getBroadcasts); router.post('/', controller.createBroadcast); // ─── Dynamic routes last ────────────────────────────────────────────────────── router.get('/:broadcastId', controller.getBroadcast); router.patch('/:broadcastId', sensitiveOpsLimiter, controller.updateBroadcast); router.patch('/:broadcastId/send', sensitiveOpsLimiter, controller.sendBroadcast); router.patch('/:broadcastId/restore', sensitiveOpsLimiter, controller.restoreBroadcast); router.delete('/:broadcastId', sensitiveOpsLimiter, controller.archiveBroadcast); router.delete('/:broadcastId/permanent', sensitiveOpsLimiter, controller.permanentlyDeleteBroadcast); module.exports = router;