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.

Feature: Multi-Organization Hierarchy

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 109
    Bredest organisasjonsstruktur: 12 landsforeninger, 9 regioner, 1 400 lokallag - aktivitetsfordeling mellom ledd må støttes.
  • docs/source/likeperson.md · line 107
    Duplikatvarsling: 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