import { Module } from '@nestjs/common'; import { CqrsModule } from '@nestjs/cqrs'; import { SharedModule } from '@modules/shared'; import { READ_MODEL_KILL_SWITCH } from './domain/read-model-kill-switch'; import { ConfigReadModelKillSwitch } from './infrastructure/config-read-model-kill-switch'; /** * Read-models module skeleton — RFC-003 Phase 0. * * Hosts: * - Projector base class (`application/projectors/projector.base.ts`). * - Read-model repository convention (`domain/read-repository.ts`). * - Idempotency port (`domain/projection-offset-store.ts`). * - Per-read-model kill switch (`domain/read-model-kill-switch.ts`). * * No projectors, repositories, or `IProjectionOffsetStore` provider are * registered here yet. The Prisma-backed offset store binding lands with * [GOO-187](/GOO/issues/GOO-187); per-read-model projectors land in * Phase 2/3. * * The module is imported by `AppModule` so its DI container is wired up * even while empty — keeps Phase 2/3 PRs strictly additive. */ @Module({ imports: [CqrsModule, SharedModule], providers: [ { provide: READ_MODEL_KILL_SWITCH, useClass: ConfigReadModelKillSwitch, }, ], exports: [READ_MODEL_KILL_SWITCH], }) export class ReadModelsModule {}