import { Module } from '@nestjs/common'; import { HierarchyAuditRepository } from './hierarchy-audit.repository.js'; import { HierarchyGrantEvaluationService } from './hierarchy-grant-evaluation.js'; import { HierarchyController } from './hierarchy.controller.js'; import { HierarchyRepository } from './hierarchy.repository.js'; import { HierarchyService } from './hierarchy.service.js'; /** * Hierarchy (tenancy/authorization structure) feature module. * * M4-1b-i shipped the audit event + outbox machinery (contract 1 §5.2); * M4-1b-ii adds the command family — the closed route surface asserted by * the route-inventory witness — plus grant evaluation (contract 2 §3). * HierarchyRepository is the sole class-table writer (writer-coverage * allowlist); every mutation runs authorize → mutate → audit in one * transaction. */ @Module({ controllers: [HierarchyController], providers: [ HierarchyAuditRepository, HierarchyGrantEvaluationService, HierarchyRepository, HierarchyService, ], exports: [HierarchyAuditRepository, HierarchyGrantEvaluationService], }) export class HierarchyModule {}