import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Module } from "@nestjs/common"; import { ConfigModule, ConfigService } from "@nestjs/config"; @Module({ imports: [ConfigModule], providers: [ { provide: PrismaReadService, useFactory: (config: ConfigService) => { const service = new PrismaReadService(); service.setOptions({ readUrl: config.get("db.readUrl", { infer: true }), maxReadConnections: parseInt(config.get("db.workerReadPoolMax", { infer: true })), e2e: config.get("e2e", { infer: true }) ?? false, type: "worker", }); return service; }, inject: [ConfigService], }, { provide: PrismaWriteService, useFactory: (config: ConfigService) => { const service = new PrismaWriteService(); service.setOptions({ writeUrl: config.get("db.writeUrl", { infer: true }), maxWriteConnections: parseInt(config.get("db.workerWritePoolMax", { infer: true })), e2e: config.get("e2e", { infer: true }) ?? false, type: "worker", }); return service; }, inject: [ConfigService], }, ], exports: [PrismaReadService, PrismaWriteService], }) export class PrismaWorkerModule {}