import { Module } from '@nestjs/common'; import { HealthServerController } from './adapters/primaries/health-server.controller'; import { PrismaHealthIndicatorUseCase } from './domain/usecases/prisma.health-indicator.usecase'; import { TerritoriesRepository } from '../territory/adapters/secondaries/territories.repository'; import { DatabaseModule } from '../database/database.module'; import { HealthController } from './adapters/primaries/health.controller'; import { TerminusModule } from '@nestjs/terminus'; import { RabbitMQModule } from '@golevelup/nestjs-rabbitmq'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { Messager } from './adapters/secondaries/messager'; @Module({ imports: [ TerminusModule, RabbitMQModule.forRootAsync(RabbitMQModule, { imports: [ConfigModule], useFactory: async (configService: ConfigService) => ({ exchanges: [ { name: configService.get('RMQ_EXCHANGE'), type: 'topic', }, ], uri: configService.get('RMQ_URI'), connectionInitOptions: { wait: false }, }), inject: [ConfigService], }), DatabaseModule, ], controllers: [HealthServerController, HealthController], providers: [PrismaHealthIndicatorUseCase, TerritoriesRepository, Messager], }) export class HealthModule {}