rwadurian/backend/services/mining-service/src/application/application.module.ts

55 lines
1.6 KiB
TypeScript

import { Module } from '@nestjs/common';
import { ScheduleModule } from '@nestjs/schedule';
import { InfrastructureModule } from '../infrastructure/infrastructure.module';
// Services
import { MiningDistributionService } from './services/mining-distribution.service';
import { ContributionSyncService } from './services/contribution-sync.service';
import { NetworkSyncService } from './services/network-sync.service';
import { ManualMiningService } from './services/manual-mining.service';
// Queries
import { GetMiningAccountQuery } from './queries/get-mining-account.query';
import { GetMiningStatsQuery } from './queries/get-mining-stats.query';
import { GetPriceQuery } from './queries/get-price.query';
// Event Handlers
import { ContributionEventHandler } from './event-handlers/contribution-event.handler';
// Schedulers
import { MiningScheduler } from './schedulers/mining.scheduler';
import { OutboxScheduler } from './schedulers/outbox.scheduler';
@Module({
imports: [ScheduleModule.forRoot(), InfrastructureModule],
providers: [
// Services
MiningDistributionService,
ContributionSyncService,
NetworkSyncService,
ManualMiningService,
// Queries
GetMiningAccountQuery,
GetMiningStatsQuery,
GetPriceQuery,
// Event Handlers
ContributionEventHandler,
// Schedulers
MiningScheduler,
OutboxScheduler,
],
exports: [
MiningDistributionService,
ContributionSyncService,
NetworkSyncService,
ManualMiningService,
GetMiningAccountQuery,
GetMiningStatsQuery,
GetPriceQuery,
],
})
export class ApplicationModule {}