From aa7e5a3c78dbd6af69172a67338f029a27b6a459 Mon Sep 17 00:00:00 2001 From: Adrian Flores Cortes Date: Sun, 25 Jan 2026 03:08:09 -0600 Subject: [PATCH] [PROP-CORE-004] feat: Register payment-terminals module in app - Added payment-terminals entities to TypeORM config - Registered PaymentTerminalsModule routes in index.ts - Updated API modules list in app.ts - Fixed getEntities() to only reference own entities Co-Authored-By: Claude Opus 4.5 --- src/app.ts | 3 +++ src/config/typeorm.ts | 9 +++++++++ src/index.ts | 9 ++++++++- .../payment-terminals/payment-terminals.module.ts | 4 ---- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/app.ts b/src/app.ts index c958da4..43dec9e 100644 --- a/src/app.ts +++ b/src/app.ts @@ -67,6 +67,9 @@ app.get('/api', (_req: Request, res: Response) => { 'invoicing', 'ecommerce', 'purchases', + 'payment-terminals', + 'mercadopago', + 'clip', ], }); }); diff --git a/src/config/typeorm.ts b/src/config/typeorm.ts index 3379dc5..15a0b5c 100644 --- a/src/config/typeorm.ts +++ b/src/config/typeorm.ts @@ -54,6 +54,11 @@ import { SupplierOrderLine } from '../modules/purchases/entities/supplier-order- import { GoodsReceipt } from '../modules/purchases/entities/goods-receipt.entity'; import { GoodsReceiptLine } from '../modules/purchases/entities/goods-receipt-line.entity'; +// Entities - Payment Terminals +import { TenantTerminalConfig } from '../modules/payment-terminals/entities/tenant-terminal-config.entity'; +import { TerminalPayment } from '../modules/payment-terminals/entities/terminal-payment.entity'; +import { TerminalWebhookEvent } from '../modules/payment-terminals/entities/terminal-webhook-event.entity'; + dotenv.config(); const isProduction = process.env.NODE_ENV === 'production'; @@ -110,6 +115,10 @@ const baseConfig: DataSourceOptions = { SupplierOrderLine, GoodsReceipt, GoodsReceiptLine, + // Payment Terminals + TenantTerminalConfig, + TerminalPayment, + TerminalWebhookEvent, ], migrations: ['src/migrations/*.ts'], synchronize: false, // NEVER use in production diff --git a/src/index.ts b/src/index.ts index 8235774..2456213 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,7 +6,8 @@ dotenv.config(); import app from './app'; import { initDatabase, closeDatabase } from './config/database'; -import { initTypeORM, closeTypeORM } from './config/typeorm'; +import { initTypeORM, closeTypeORM, AppDataSource } from './config/typeorm'; +import { PaymentTerminalsModule } from './modules/payment-terminals'; const PORT = parseInt(process.env.PORT || '3001', 10); const HOST = process.env.HOST || '0.0.0.0'; @@ -21,6 +22,12 @@ async function bootstrap(): Promise { await initDatabase(); await initTypeORM(); + // Register payment terminals module (requires DataSource) + const paymentTerminals = new PaymentTerminalsModule({ dataSource: AppDataSource }); + app.use('/api', paymentTerminals.router); + app.use('/webhooks', paymentTerminals.webhookRouter); + console.log('Payment terminals module registered'); + // Start server const server = app.listen(PORT, HOST, () => { console.log(`Server running on http://${HOST}:${PORT}`); diff --git a/src/modules/payment-terminals/payment-terminals.module.ts b/src/modules/payment-terminals/payment-terminals.module.ts index 14410c0..9d723f1 100644 --- a/src/modules/payment-terminals/payment-terminals.module.ts +++ b/src/modules/payment-terminals/payment-terminals.module.ts @@ -62,10 +62,6 @@ export class PaymentTerminalsModule { */ static getEntities() { return [ - // Existing entities - require('../branches/entities/branch-payment-terminal.entity').BranchPaymentTerminal, - require('../mobile/entities/payment-transaction.entity').PaymentTransaction, - // New entities for MercadoPago/Clip require('./entities/tenant-terminal-config.entity').TenantTerminalConfig, require('./entities/terminal-payment.entity').TerminalPayment, require('./entities/terminal-webhook-event.entity').TerminalWebhookEvent,