OrgHierarchyRepository
Component Detail
Data Layer
medium complexity
backend
0
Dependencies
0
Dependents
2
Entities
0
Integrations
Description
Handles all database access for organizational hierarchy data including nodes, relationships, rollup configuration, and duplicate-detection rules. Provides efficient tree traversal queries using recursive CTEs and manages transactional integrity when restructuring hierarchy branches.
org-hierarchy-repository
Sources & reasoning
Line 109 states NHF has 1,400 local associations with a hard requirement that activity attribution across levels be supported. Line 107 adds duplicate-registration detection across coordinator levels. NHF is a Phase 1 launch organization (line 323), making the hierarchy model an MVP requirement.
-
docs/source/likeperson.md · line 109Bredest organisasjonsstruktur: 12 landsforeninger, 9 regioner, 1 400 lokallag - aktivitetsfordeling mellom ledd må støttes.
-
docs/source/likeperson.md · line 107Duplikatvarsling: Fange opp når samme aktivitet registreres av flere koordinatorer.
Responsibilities
- Store and retrieve organization nodes and their parent-child relationships
- Execute recursive tree queries for full hierarchy retrieval and subtree scoping
- Persist and load rollup configuration per hierarchy level
- Manage duplicate-detection rule records and their applicability scope
- Ensure referential integrity during node moves and deletions
Interfaces
findTreeFromRoot(rootOrgId: string): Promise<OrgNode[]>
findAncestors(orgId: string): Promise<OrgNode[]>
insertNode(parentId: string, data: OrgNodeInput): Promise<OrgNode>
updateNode(orgId: string, data: Partial<OrgNodeInput>): Promise<OrgNode>
reparentNode(orgId: string, newParentId: string): Promise<void>
getRollupConfig(orgId: string): Promise<RollupConfig>
upsertRollupConfig(orgId: string, config: RollupConfig): Promise<void>
getDuplicateRules(orgId: string): Promise<DuplicateRule[]>
Related Data Entities (2)
Data entities managed by this component