import { Module } from "@nestjs/common"; 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 { FreebitErrorHandlerService } from "./services/freebit-error-handler.service.js"; import { VoiceOptionsModule } from "../../modules/voice-options/voice-options.module.js"; @Module({ imports: [VoiceOptionsModule], providers: [ // Core services FreebitErrorHandlerService, FreebitClientService, FreebitAuthService, FreebitMapperService, FreebitRateLimiterService, // Specialized operation services FreebitAccountService, FreebitUsageService, FreebitPlanService, FreebitVoiceService, FreebitCancellationService, FreebitEsimService, // Facade (delegates to specialized services, handles account normalization) FreebitOperationsService, ], exports: [ // Export error handler FreebitErrorHandlerService, // Export main facade for all Freebit operations FreebitOperationsService, // Export specialized services for direct access if needed FreebitAccountService, FreebitUsageService, FreebitPlanService, FreebitVoiceService, FreebitCancellationService, FreebitEsimService, ], }) export class FreebitModule {}