import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { TypeOrmModule } from '@nestjs/typeorm'; import configuration from './config/configuration'; import { RedisModule } from './common/redis/redis.module'; import { LocationsModule } from './modules/locations/locations.module'; /** * وحدة الـworker — عملية منفصلة (`node dist/worker.js`) لا تخدم HTTP. * تحمل ما يحتاجه العمل الدوري فقط: قاعدة + Redis + المواقع. */ @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, load: [configuration] }), TypeOrmModule.forRootAsync({ inject: [ConfigService], useFactory: (cfg: ConfigService) => ({ type: 'postgres' as const, host: cfg.get('db.host'), port: cfg.get('db.port'), database: cfg.get('db.name'), username: cfg.get('db.user'), password: cfg.get('db.password'), // بركة أصغر من الـAPI: الـworker يكتب دفعات قليلة لا طلبات متزامنة. extra: { max: parseInt(process.env.WORKER_DB_POOL_MAX ?? '5', 10) }, entityPrefix: cfg.get('db.tablePrefix'), synchronize: false, autoLoadEntities: true, }), }), RedisModule, LocationsModule, ], }) export class WorkerModule {}