import { Module, forwardRef } from "@nestjs/common"; import { FreebitOrchestratorService } from "./services/freebit-orchestrator.service.js"; import { FreebitMapperService } from "./services/freebit-mapper.service.js"; import { FreebitOperationsService } from "./services/freebit-operations.service.js"; import { FreebitClientService } from "./services/freebit-client.service.js"; import { FreebitAuthService } from "./services/freebit-auth.service.js"; import { FreebitRateLimiterService } from "./services/freebit-rate-limiter.service.js"; import { FreebitAccountService } from "./services/freebit-account.service.js"; import { FreebitUsageService } from "./services/freebit-usage.service.js"; import { FreebitPlanService } from "./services/freebit-plan.service.js"; import { FreebitVoiceService } from "./services/freebit-voice.service.js"; import { FreebitCancellationService } from "./services/freebit-cancellation.service.js"; import { FreebitEsimService } from "./services/freebit-esim.service.js"; import { SimManagementModule } from "../../modules/subscriptions/sim-management/sim-management.module.js"; @Module({ imports: [forwardRef(() => SimManagementModule)], providers: [ // Core services FreebitClientService, FreebitAuthService, FreebitMapperService, FreebitRateLimiterService, // Specialized operation services FreebitAccountService, FreebitUsageService, FreebitPlanService, FreebitVoiceService, FreebitCancellationService, FreebitEsimService, // Facade (delegates to specialized services) FreebitOperationsService, FreebitOrchestratorService, ], exports: [ // Export orchestrator for high-level operations FreebitOrchestratorService, // Export facade for backward compatibility FreebitOperationsService, // Export specialized services for direct access if needed FreebitAccountService, FreebitUsageService, FreebitPlanService, FreebitVoiceService, FreebitCancellationService, FreebitEsimService, ], }) export class FreebitModule {}