50 lines
2.0 KiB
TypeScript
Raw Normal View History

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