50 lines
2.0 KiB
TypeScript
Raw Normal View History

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 {}