Files
goodgo-platform/apps/api/src/modules/read-models/read-models.module.ts
Ho Ngoc Hai f5118244b7 fix(a11y): resolve serious accessibility issues on search page (GOO-110)
- Add aria-hidden="true" to all decorative inline SVGs (bookmark, view-mode, funnel, checkmark)
- Convert save-search popover to proper dialog: role="dialog", aria-modal, focus trap, Escape key, focus return to trigger
- Add aria-pressed on list/map/split view-mode toggle buttons
- Add aria-expanded + aria-controls on mobile filter toggle button
- Add role="status" + aria-label="Đang tải..." on Suspense fallback

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-24 10:26:50 +07:00

35 lines
1.2 KiB
TypeScript

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 {}