import { Router } from 'express'; import { authenticate } from '../../middlewares/authenticate.js'; import { validateRequest } from '../../middlewares/validate-request.js'; import { createTransactionSchema, updateTransactionSchema, transactionIdSchema, notificationSchema } from './transactions.schema.js'; import { listTransactionsHandler, createTransactionHandler, getTransactionHandler, updateTransactionHandler, deleteTransactionHandler, createTransactionFromNotificationHandler, aiClassifyTransactionHandler, createBlacklistRuleFromTransactionHandler, createRuleFromTransactionHandler, aiSuggestRuleFromTransactionHandler } from './transactions.controller.js'; const router = Router(); router.post('/notification', validateRequest({ body: notificationSchema }), createTransactionFromNotificationHandler); router.use(authenticate); router.get('/', listTransactionsHandler); router.post('/', validateRequest({ body: createTransactionSchema }), createTransactionHandler); router.get('/:id', validateRequest({ params: transactionIdSchema }), getTransactionHandler); router.patch('/:id', validateRequest({ params: transactionIdSchema, body: updateTransactionSchema }), updateTransactionHandler); router.delete('/:id', validateRequest({ params: transactionIdSchema }), deleteTransactionHandler); router.post('/:id/ai-classify', validateRequest({ params: transactionIdSchema }), aiClassifyTransactionHandler); router.post('/:id/rules/blacklist', validateRequest({ params: transactionIdSchema }), createBlacklistRuleFromTransactionHandler); router.post('/:id/rules/from-notification', validateRequest({ params: transactionIdSchema }), createRuleFromTransactionHandler); router.post('/:id/rules/ai-suggest', validateRequest({ params: transactionIdSchema }), aiSuggestRuleFromTransactionHandler); export default router;