fix(presence-service): 修复 MetricsModule 依赖注入,直接提供仓库实现

MetricsCollectorService 需要 DAU 和 EventLog 仓库,
但这些在 InfrastructureModule 中通过符号注入,
导致循环依赖问题。改为在 MetricsModule 中直接提供这些依赖。

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Developer 2025-12-04 01:35:59 -08:00
parent 8faaedaa64
commit f771dc8f6e
1 changed files with 24 additions and 4 deletions

View File

@ -1,15 +1,35 @@
import { Module, Global } from '@nestjs/common';
import { Module, Global, forwardRef } from '@nestjs/common';
import { MetricsService } from './metrics.service';
import { MetricsController } from './metrics.controller';
import { MetricsCollectorService } from './metrics-collector.service';
import { RedisModule } from '../redis/redis.module';
import { PersistenceModule } from '../persistence/persistence.module';
import { PrismaService } from '../persistence/prisma/prisma.service';
import { DailyActiveStatsMapper } from '../persistence/mappers/daily-active-stats.mapper';
import { EventLogMapper } from '../persistence/mappers/event-log.mapper';
import { DailyActiveStatsRepositoryImpl } from '../persistence/repositories/daily-active-stats.repository.impl';
import { EventLogRepositoryImpl } from '../persistence/repositories/event-log.repository.impl';
import { DAILY_ACTIVE_STATS_REPOSITORY } from '../../domain/repositories/daily-active-stats.repository.interface';
import { EVENT_LOG_REPOSITORY } from '../../domain/repositories/event-log.repository.interface';
@Global()
@Module({
imports: [RedisModule, PersistenceModule],
imports: [RedisModule],
controllers: [MetricsController],
providers: [MetricsService, MetricsCollectorService],
providers: [
MetricsService,
MetricsCollectorService,
PrismaService,
DailyActiveStatsMapper,
EventLogMapper,
{
provide: DAILY_ACTIVE_STATS_REPOSITORY,
useClass: DailyActiveStatsRepositoryImpl,
},
{
provide: EVENT_LOG_REPOSITORY,
useClass: EventLogRepositoryImpl,
},
],
exports: [MetricsService],
})
export class MetricsModule {}