1
import { Module } from '@nestjs/common';
2
import { CommercialController } from './api/commercial.controller';
3
import { CommercialAdminController } from './api/commercial-admin.controller';
4
import { BillingWebhookController } from './api/billing-webhook.controller';
5
import { EntitlementService } from './application/entitlement.service';
6
import { EntitlementProjectionService } from './application/entitlement-projection.service';
7
import { IntegrationEntitlementService } from './application/integration-entitlement.service';
8
import { UsageMeterService } from './application/usage-meter.service';
9
import { CommercialService } from './application/commercial.service';
10
import { PlanAdminService } from './application/plan-admin.service';
11
import { SubscriptionCommandService } from './application/subscription-command.service';
12
import { BillingHistoryService } from './application/billing-history.service';
13
import { BillingWebhookService } from './webhooks/billing-webhook.service';
14
import { SubscriptionLifecycleWorker } from './workers/subscription-lifecycle.worker';
15
import { ScheduledPlanChangeWorker } from './workers/scheduled-plan-change.worker';
16
import { BillingReconciliationWorker } from './workers/billing-reconciliation.worker';
17
import { BillingSecretService } from './providers/billing-secret.service';
18
import { StripeSaaSBillingProvider } from './providers/stripe/stripe-saas-billing.provider';
19
import { MockSaaSBillingProvider } from './providers/mock-saas-billing.provider';
20
import { SaaSBillingProviderRegistry } from './providers/saas-billing-provider.registry';
21
22
@Module({
23
controllers:[CommercialController,CommercialAdminController,BillingWebhookController],
24
providers:[
25
EntitlementService,EntitlementProjectionService,IntegrationEntitlementService,
26
UsageMeterService,CommercialService,PlanAdminService,SubscriptionCommandService,
27
BillingHistoryService,BillingWebhookService,SubscriptionLifecycleWorker,
28
ScheduledPlanChangeWorker,BillingReconciliationWorker,BillingSecretService,
29
StripeSaaSBillingProvider,MockSaaSBillingProvider,SaaSBillingProviderRegistry,
30
],
31
exports:[
32
EntitlementService,EntitlementProjectionService,IntegrationEntitlementService,
33
UsageMeterService,CommercialService,PlanAdminService,SaaSBillingProviderRegistry,
34
],
35
})
36
export class CommercialModule {}
37