import { Module } from '@nestjs/common'; import { AuditModule } from '../audit/audit.module.js'; import { AppConfigService } from '../config/app-config.service.js'; import { PermissionsModule } from '../permissions/permissions.module.js'; import { HanaAdapter } from './hana.adapter.js'; import { SapDbController } from './sapdb.controller.js'; import { SapDbService } from './sapdb.service.js'; import { SAPDB_ADAPTER, type SapDbAdapter } from './sapdb.types.js'; /** Consultas de solo lectura a la base de SAP B1 (hoy HANA): su propia cola y sus propias consultas registradas. */ @Module({ imports: [AuditModule, PermissionsModule], controllers: [SapDbController], exports: [SapDbService], providers: [ { provide: SAPDB_ADAPTER, inject: [AppConfigService], // sin motor configurado no hay adaptador: el servicio responde 503 y el resto de la API sigue igual useFactory: (config: AppConfigService): SapDbAdapter | null => config.get('SAPDB_ENGINE') === 'hana' ? new HanaAdapter({ host: config.get('SAPDB_HOST')!, port: config.get('SAPDB_PORT'), user: config.get('SAPDB_USER')!, password: config.get('SAPDB_PASSWORD')!, schema: config.get('SAPDB_SCHEMA')!, tls: config.get('SAPDB_TLS'), caFile: config.get('SAPDB_CA_FILE'), verifySsl: config.get('SAPDB_VERIFY_SSL'), }) : null, }, SapDbService, ], }) export class SapDbModule {}