40 lines
1.4 KiB
TypeScript
Executable File
40 lines
1.4 KiB
TypeScript
Executable File
import { Module } from "@nestjs/common";
|
|
import { HttpModule } from "@nestjs/axios";
|
|
import { BullModule } from "@nestjs/bullmq";
|
|
import { PredictionsController } from "./predictions.controller";
|
|
import { PredictionsService } from "./predictions.service";
|
|
import { AiFeatureStoreService } from "./services/ai-feature-store.service";
|
|
import { DatabaseModule } from "../../database/database.module";
|
|
import { MatchesModule } from "../matches/matches.module";
|
|
import { PredictionsQueue } from "./queues/predictions.queue";
|
|
import { PredictionsProcessor } from "./queues/predictions.processor";
|
|
import { PREDICTIONS_QUEUE } from "./queues/predictions.types";
|
|
import { FeederModule } from "../feeder/feeder.module";
|
|
import { AnalysisModule } from "../analysis/analysis.module";
|
|
|
|
const redisEnabled = process.env.REDIS_ENABLED === "true";
|
|
|
|
@Module({
|
|
imports: [
|
|
DatabaseModule,
|
|
HttpModule.register({
|
|
timeout: 30000, // 30 seconds
|
|
maxRedirects: 5,
|
|
}),
|
|
...(redisEnabled
|
|
? [BullModule.registerQueue({ name: PREDICTIONS_QUEUE })]
|
|
: []),
|
|
MatchesModule,
|
|
FeederModule,
|
|
AnalysisModule,
|
|
],
|
|
controllers: [PredictionsController],
|
|
providers: [
|
|
PredictionsService,
|
|
AiFeatureStoreService,
|
|
...(redisEnabled ? [PredictionsQueue, PredictionsProcessor] : []),
|
|
],
|
|
exports: [PredictionsService, AiFeatureStoreService],
|
|
})
|
|
export class PredictionsModule {}
|