erp-core-backend-v2/src/modules/cfdi/cfdi.module.ts
Adrian Flores Cortes 6a12ff0844 [TASK-2026-02-05-EJECUCION-REMEDIATION-ERP-CORE] feat: Complete Sprint 0-4 data modeling remediation
Sprint 0: Updated inventories (MASTER/BACKEND/DATABASE) with verified baseline
Sprint 1: Fixed 8 P0 blockers - CFDI entities (schema cfdi→fiscal), auth base DDL,
  billing duplication (→operations), 5 project entities, PaymentInvoiceAllocation,
  core.companies DDL, recreate-database.sh array
Sprint 2: 4 new auth entities, session/role/permission DDL reconciliation,
  CFDI PAC+StampQueue, partner address+contact alignment
Sprint 3: CFDI service+controller+routes, mobile service+controller+routes,
  inventory extended DDL (7 tables)
Sprint 4: timestamp→timestamptz (40 files), field divergences, token/roles/permissions
  service alignment with new DDL-aligned entities

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 21:51:55 -06:00

60 lines
1.6 KiB
TypeScript

/**
* CFDI Module
*
* Módulo para gestión de Comprobantes Fiscales Digitales por Internet (CFDI)
* Incluye timbrado, cancelación y complementos de pago
*/
import { Router } from 'express';
import { DataSource } from 'typeorm';
import { CfdiCertificate } from './entities/cfdi-certificate.entity.js';
import { CfdiInvoice } from './entities/cfdi-invoice.entity.js';
import { CfdiCancellation } from './entities/cfdi-cancellation.entity.js';
import { CfdiLog } from './entities/cfdi-log.entity.js';
import { CfdiPaymentComplement } from './entities/cfdi-payment-complement.entity.js';
import { CfdiPacConfiguration } from './entities/cfdi-pac-configuration.entity.js';
import { CfdiStampQueue } from './entities/cfdi-stamp-queue.entity.js';
import cfdiRoutes from './cfdi.routes.js';
export interface CfdiModuleOptions {
dataSource: DataSource;
basePath?: string;
}
export class CfdiModule {
public router: Router;
constructor(options: CfdiModuleOptions) {
const { basePath = '/cfdi' } = options;
this.router = Router();
// Mount CFDI routes under the base path
this.router.use(basePath, cfdiRoutes);
}
/**
* Get all entities for this module (for TypeORM configuration)
*/
static getEntities() {
return [
CfdiCertificate,
CfdiInvoice,
CfdiCancellation,
CfdiLog,
CfdiPaymentComplement,
CfdiPacConfiguration,
CfdiStampQueue,
];
}
}
export default CfdiModule;
// Re-export all module components
export * from './entities/index.js';
export * from './dto/index.js';
export * from './enums/index.js';
export * from './interfaces/index.js';
export * from './services/index.js';