97 lines
3.7 KiB
TypeScript
Raw Normal View History

import { Module, forwardRef } from "@nestjs/common";
import { FreebitModule } from "@bff/integrations/freebit/freebit.module.js";
import { WhmcsModule } from "@bff/integrations/whmcs/whmcs.module.js";
import { SalesforceModule } from "@bff/integrations/salesforce/salesforce.module.js";
import { MappingsModule } from "@bff/modules/id-mappings/mappings.module.js";
import { EmailModule } from "@bff/infra/email/email.module.js";
import { SftpModule } from "@bff/integrations/sftp/sftp.module.js";
import { SimUsageStoreService } from "../sim-usage-store.service.js";
import { SubscriptionsService } from "../subscriptions.service.js";
// Import all SIM management services
import { SimOrchestratorService } from "./services/sim-orchestrator.service.js";
import { SimDetailsService } from "./services/sim-details.service.js";
import { SimUsageService } from "./services/sim-usage.service.js";
import { SimTopUpService } from "./services/sim-topup.service.js";
import { SimTopUpPricingService } from "./services/sim-topup-pricing.service.js";
import { SimPlanService } from "./services/sim-plan.service.js";
import { SimCancellationService } from "./services/sim-cancellation.service.js";
import { EsimManagementService } from "./services/esim-management.service.js";
import { SimValidationService } from "./services/sim-validation.service.js";
import { SimNotificationService } from "./services/sim-notification.service.js";
import { SimApiNotificationService } from "./services/sim-api-notification.service.js";
import { SimBillingService } from "./services/sim-billing.service.js";
import { SimScheduleService } from "./services/sim-schedule.service.js";
import { SimActionRunnerService } from "./services/sim-action-runner.service.js";
import { SimManagementQueueService } from "./queue/sim-management.queue.js";
import { SimManagementProcessor } from "./queue/sim-management.processor.js";
import { SimVoiceOptionsService } from "./services/sim-voice-options.service.js";
import { SimCallHistoryService } from "./services/sim-call-history.service.js";
import { CatalogModule } from "@bff/modules/catalog/catalog.module.js";
import { NotificationsModule } from "@bff/modules/notifications/notifications.module.js";
@Module({
imports: [
forwardRef(() => FreebitModule),
WhmcsModule,
SalesforceModule,
MappingsModule,
EmailModule,
CatalogModule,
SftpModule,
NotificationsModule,
],
providers: [
// Core services that the SIM services depend on
SimUsageStoreService,
SubscriptionsService,
// SIM management services
SimValidationService,
SimNotificationService,
SimApiNotificationService,
SimVoiceOptionsService,
SimDetailsService,
SimUsageService,
SimTopUpService,
SimTopUpPricingService,
SimPlanService,
SimCancellationService,
EsimManagementService,
SimOrchestratorService,
SimBillingService,
SimScheduleService,
SimActionRunnerService,
SimManagementQueueService,
SimManagementProcessor,
SimCallHistoryService,
// Export with token for optional injection in Freebit module
{
provide: "SimVoiceOptionsService",
useExisting: SimVoiceOptionsService,
},
],
exports: [
SimOrchestratorService,
// Export individual services in case they're needed elsewhere
SimDetailsService,
SimUsageService,
SimTopUpService,
SimTopUpPricingService,
SimPlanService,
SimCancellationService,
EsimManagementService,
SimValidationService,
SimNotificationService,
SimApiNotificationService,
SimBillingService,
SimScheduleService,
SimActionRunnerService,
SimManagementQueueService,
SimVoiceOptionsService,
SimCallHistoryService,
"SimVoiceOptionsService", // Export the token
],
})
export class SimManagementModule {}