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>
60 lines
1.6 KiB
TypeScript
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';
|