98 lines
4.1 KiB
TypeScript
98 lines
4.1 KiB
TypeScript
import { Module, Global } from '@nestjs/common';
|
|
import { HttpModule } from '@nestjs/axios';
|
|
import { PrismaService } from './persistence/prisma/prisma.service';
|
|
import { PlantingOrderRepositoryImpl } from './persistence/repositories/planting-order.repository.impl';
|
|
import { PlantingPositionRepositoryImpl } from './persistence/repositories/planting-position.repository.impl';
|
|
import { PoolInjectionBatchRepositoryImpl } from './persistence/repositories/pool-injection-batch.repository.impl';
|
|
import { ContractTemplateRepositoryImpl } from './persistence/repositories/contract-template.repository.impl';
|
|
import { ContractSigningTaskRepositoryImpl } from './persistence/repositories/contract-signing-task.repository.impl';
|
|
import { OutboxRepository } from './persistence/repositories/outbox.repository';
|
|
import { PaymentCompensationRepository } from './persistence/repositories/payment-compensation.repository';
|
|
import { UnitOfWork, UNIT_OF_WORK } from './persistence/unit-of-work';
|
|
import { WalletServiceClient } from './external/wallet-service.client';
|
|
import { ReferralServiceClient } from './external/referral-service.client';
|
|
import { IdentityServiceClient } from './external/identity-service.client';
|
|
import { KafkaModule } from './kafka/kafka.module';
|
|
import { OutboxPublisherService } from './kafka/outbox-publisher.service';
|
|
import { EventAckController } from './kafka/event-ack.controller';
|
|
import { ContractSigningEventConsumer } from './kafka/contract-signing-event.consumer';
|
|
import { KycVerifiedEventConsumer } from './kafka/kyc-verified-event.consumer';
|
|
import { PdfGeneratorService } from './pdf/pdf-generator.service';
|
|
import { MinioStorageService } from './storage/minio-storage.service';
|
|
import { PLANTING_ORDER_REPOSITORY } from '../domain/repositories/planting-order.repository.interface';
|
|
import { PLANTING_POSITION_REPOSITORY } from '../domain/repositories/planting-position.repository.interface';
|
|
import { POOL_INJECTION_BATCH_REPOSITORY } from '../domain/repositories/pool-injection-batch.repository.interface';
|
|
import { CONTRACT_TEMPLATE_REPOSITORY } from '../domain/repositories/contract-template.repository.interface';
|
|
import { CONTRACT_SIGNING_TASK_REPOSITORY } from '../domain/repositories/contract-signing-task.repository.interface';
|
|
import { PaymentCompensationService } from '../application/services/payment-compensation.service';
|
|
import { ContractSigningService } from '../application/services/contract-signing.service';
|
|
|
|
@Global()
|
|
@Module({
|
|
imports: [
|
|
HttpModule.register({
|
|
timeout: 5000,
|
|
maxRedirects: 5,
|
|
}),
|
|
KafkaModule,
|
|
],
|
|
controllers: [EventAckController, ContractSigningEventConsumer, KycVerifiedEventConsumer],
|
|
providers: [
|
|
PrismaService,
|
|
{
|
|
provide: PLANTING_ORDER_REPOSITORY,
|
|
useClass: PlantingOrderRepositoryImpl,
|
|
},
|
|
{
|
|
provide: PLANTING_POSITION_REPOSITORY,
|
|
useClass: PlantingPositionRepositoryImpl,
|
|
},
|
|
{
|
|
provide: POOL_INJECTION_BATCH_REPOSITORY,
|
|
useClass: PoolInjectionBatchRepositoryImpl,
|
|
},
|
|
{
|
|
provide: CONTRACT_TEMPLATE_REPOSITORY,
|
|
useClass: ContractTemplateRepositoryImpl,
|
|
},
|
|
{
|
|
provide: CONTRACT_SIGNING_TASK_REPOSITORY,
|
|
useClass: ContractSigningTaskRepositoryImpl,
|
|
},
|
|
{
|
|
provide: UNIT_OF_WORK,
|
|
useClass: UnitOfWork,
|
|
},
|
|
OutboxRepository,
|
|
PaymentCompensationRepository,
|
|
OutboxPublisherService,
|
|
PaymentCompensationService,
|
|
ContractSigningService,
|
|
PdfGeneratorService,
|
|
MinioStorageService,
|
|
WalletServiceClient,
|
|
ReferralServiceClient,
|
|
IdentityServiceClient,
|
|
],
|
|
exports: [
|
|
PrismaService,
|
|
PLANTING_ORDER_REPOSITORY,
|
|
PLANTING_POSITION_REPOSITORY,
|
|
POOL_INJECTION_BATCH_REPOSITORY,
|
|
CONTRACT_TEMPLATE_REPOSITORY,
|
|
CONTRACT_SIGNING_TASK_REPOSITORY,
|
|
UNIT_OF_WORK,
|
|
OutboxRepository,
|
|
PaymentCompensationRepository,
|
|
OutboxPublisherService,
|
|
PaymentCompensationService,
|
|
ContractSigningService,
|
|
PdfGeneratorService,
|
|
MinioStorageService,
|
|
WalletServiceClient,
|
|
ReferralServiceClient,
|
|
IdentityServiceClient,
|
|
],
|
|
})
|
|
export class InfrastructureModule {}
|