import { Module } from "@nestjs/common"; import { FreebitModule } from "@bff/integrations/freebit/freebit.module"; import { WhmcsModule } from "@bff/integrations/whmcs/whmcs.module"; import { MappingsModule } from "@bff/modules/id-mappings/mappings.module"; import { EmailModule } from "@bff/infra/email/email.module"; import { SimUsageStoreService } from "../sim-usage-store.service"; import { SubscriptionsService } from "../subscriptions.service"; // Import all SIM management services import { SimOrchestratorService } from "./services/sim-orchestrator.service"; import { SimDetailsService } from "./services/sim-details.service"; import { SimUsageService } from "./services/sim-usage.service"; import { SimTopUpService } from "./services/sim-topup.service"; import { SimTopUpPricingService } from "./services/sim-topup-pricing.service"; import { SimPlanService } from "./services/sim-plan.service"; import { SimCancellationService } from "./services/sim-cancellation.service"; import { EsimManagementService } from "./services/esim-management.service"; import { SimValidationService } from "./services/sim-validation.service"; import { SimNotificationService } from "./services/sim-notification.service"; import { SimBillingService } from "./services/sim-billing.service"; import { SimScheduleService } from "./services/sim-schedule.service"; import { SimActionRunnerService } from "./services/sim-action-runner.service"; import { SimManagementQueueService } from "./queue/sim-management.queue"; import { SimManagementProcessor } from "./queue/sim-management.processor"; @Module({ imports: [FreebitModule, WhmcsModule, MappingsModule, EmailModule], providers: [ // Core services that the SIM services depend on SimUsageStoreService, SubscriptionsService, // SIM management services SimValidationService, SimNotificationService, SimDetailsService, SimUsageService, SimTopUpService, SimTopUpPricingService, SimPlanService, SimCancellationService, EsimManagementService, SimOrchestratorService, SimBillingService, SimScheduleService, SimActionRunnerService, SimManagementQueueService, SimManagementProcessor, ], exports: [ SimOrchestratorService, // Export individual services in case they're needed elsewhere SimDetailsService, SimUsageService, SimTopUpService, SimTopUpPricingService, SimPlanService, SimCancellationService, EsimManagementService, SimValidationService, SimNotificationService, SimBillingService, SimScheduleService, SimActionRunnerService, SimManagementQueueService, ], }) export class SimManagementModule {}