fix(reward): register EventConsumerController to enable Kafka consumption

EventConsumerController was not registered in KafkaModule, causing
@MessagePattern('planting.order.paid') to never be subscribed.
This resulted in reward-service having empty memberAssignment.

Also added forwardRef to resolve circular dependency between
ApplicationModule and InfrastructureModule.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-10 10:36:55 -08:00
parent 4972e56ad2
commit 9e6fc04344
2 changed files with 10 additions and 5 deletions

View File

@ -1,4 +1,4 @@
import { Module } from '@nestjs/common'; import { Module, forwardRef } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule'; import { ScheduleModule } from '@nestjs/schedule';
import { RewardApplicationService } from './services/reward-application.service'; import { RewardApplicationService } from './services/reward-application.service';
import { RewardExpirationScheduler } from './schedulers/reward-expiration.scheduler'; import { RewardExpirationScheduler } from './schedulers/reward-expiration.scheduler';
@ -9,7 +9,7 @@ import { InfrastructureModule } from '../infrastructure/infrastructure.module';
imports: [ imports: [
ScheduleModule.forRoot(), ScheduleModule.forRoot(),
DomainModule, DomainModule,
InfrastructureModule, forwardRef(() => InfrastructureModule),
], ],
providers: [ providers: [
RewardApplicationService, RewardApplicationService,

View File

@ -1,10 +1,14 @@
import { Module } from '@nestjs/common'; import { Module, forwardRef } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config'; import { ConfigModule, ConfigService } from '@nestjs/config';
import { ClientsModule, Transport } from '@nestjs/microservices'; import { ClientsModule, Transport } from '@nestjs/microservices';
import { EventPublisherService } from './event-publisher.service'; import { EventPublisherService } from './event-publisher.service';
import { EventConsumerController } from './event-consumer.controller';
import { EventAckPublisher } from './event-ack.publisher';
import { ApplicationModule } from '../../application/application.module';
@Module({ @Module({
imports: [ imports: [
forwardRef(() => ApplicationModule),
ClientsModule.registerAsync([ ClientsModule.registerAsync([
{ {
name: 'KAFKA_SERVICE', name: 'KAFKA_SERVICE',
@ -25,7 +29,8 @@ import { EventPublisherService } from './event-publisher.service';
}, },
]), ]),
], ],
providers: [EventPublisherService], controllers: [EventConsumerController],
exports: [EventPublisherService, ClientsModule], providers: [EventPublisherService, EventAckPublisher],
exports: [EventPublisherService, EventAckPublisher, ClientsModule],
}) })
export class KafkaModule {} export class KafkaModule {}