47 lines
1.6 KiB
TypeScript
47 lines
1.6 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { PrismaService } from './persistence/prisma/prisma.service';
|
|
import { EventLogMapper } from './persistence/mappers/event-log.mapper';
|
|
import { DailyActiveStatsMapper } from './persistence/mappers/daily-active-stats.mapper';
|
|
import { OnlineSnapshotMapper } from './persistence/mappers/online-snapshot.mapper';
|
|
import { EventLogRepositoryImpl } from './persistence/repositories/event-log.repository.impl';
|
|
import { DailyActiveStatsRepositoryImpl } from './persistence/repositories/daily-active-stats.repository.impl';
|
|
import { OnlineSnapshotRepositoryImpl } from './persistence/repositories/online-snapshot.repository.impl';
|
|
import { RedisModule } from './redis/redis.module';
|
|
import { KafkaModule } from './kafka/kafka.module';
|
|
import {
|
|
EVENT_LOG_REPOSITORY,
|
|
DAILY_ACTIVE_STATS_REPOSITORY,
|
|
ONLINE_SNAPSHOT_REPOSITORY,
|
|
} from '../domain/repositories/event-log.repository.interface';
|
|
|
|
@Module({
|
|
imports: [RedisModule, KafkaModule],
|
|
providers: [
|
|
PrismaService,
|
|
EventLogMapper,
|
|
DailyActiveStatsMapper,
|
|
OnlineSnapshotMapper,
|
|
{
|
|
provide: EVENT_LOG_REPOSITORY,
|
|
useClass: EventLogRepositoryImpl,
|
|
},
|
|
{
|
|
provide: DAILY_ACTIVE_STATS_REPOSITORY,
|
|
useClass: DailyActiveStatsRepositoryImpl,
|
|
},
|
|
{
|
|
provide: ONLINE_SNAPSHOT_REPOSITORY,
|
|
useClass: OnlineSnapshotRepositoryImpl,
|
|
},
|
|
],
|
|
exports: [
|
|
PrismaService,
|
|
EVENT_LOG_REPOSITORY,
|
|
DAILY_ACTIVE_STATS_REPOSITORY,
|
|
ONLINE_SNAPSHOT_REPOSITORY,
|
|
RedisModule,
|
|
KafkaModule,
|
|
],
|
|
})
|
|
export class InfrastructureModule {}
|