import { FastifyInstance } from 'fastify'; import * as productController from '../controllers/product.controller'; import { authenticate, requireRoles } from '../middlewares/auth.middleware'; export async function productRoutes(app: FastifyInstance) { app.get('/produtos', { preHandler: [authenticate] }, productController.listProductsController); app.get('/produtos/mais-vendidos', { preHandler: [authenticate] }, productController.getTopProductsController); app.get('/produtos/busca', { preHandler: [authenticate] }, productController.searchProductsController); app.get('/produtos/baixo-estoque', { preHandler: [requireRoles(['ADMIN'])] }, productController.getLowStockProductsController); app.get('/produtos/:id', { preHandler: [authenticate] }, productController.getProductController); app.post('/produtos', { preHandler: [requireRoles(['ADMIN'])] }, productController.createProductController); app.put('/produtos/:id', { preHandler: [requireRoles(['ADMIN'])] }, productController.updateProductController); app.patch('/produtos/:id', { preHandler: [requireRoles(['ADMIN'])] }, productController.updateProductController); app.delete('/produtos/:id', { preHandler: [requireRoles(['ADMIN'])] }, productController.deleteProductController); }