Org chart
HRMQ's organisational model is deliberately simple: a self-referencing
OrgUnit hierarchy and effective-dated OrgAssignment placements linking
employees to units. Neither schema carries a lifecycle — both are plain
records, no workflow.
OrgUnit
OrgUnit — afdeling, team, or kostenplaats — has an optional
parentUnitId (self-referencing, null for roots), an optional
costCenter, an optional managerId pointing at an Employee, and an
active flag (default true).
OrgAssignment
OrgAssignment links an Employee to an OrgUnit for a period:
startDate is required, endDate is nullable — null means the placement
is current and open-ended.
Both OrgUnit.parentUnitId/managerId and OrgAssignment's two
references are canonical $ref relations, so they resolve through the
related widget on detail pages, and inbound relations surface as
filtered object-lists — child units and assignments on OrgUnitDetail,
an employee's assignments on EmployeeDetail.
Two integrity rules
Two machine-checkable rules (domain labour, framework hr-org-core,
severity mandatory) audit the structure:
nl-org-assignment-consistency— flags an assignment whoseendDateprecedes itsstartDate, and flags an active assignment (noendDate, orendDatein the future) that references anOrgUnitwithactive: false. A historical assignment that ended before a unit was retired is not flagged — past placements may legitimately point at retired units.nl-org-unit-cycle— walks each unit'sparentUnitIdchain and flags every unit in a cycle (including a unit parented to itself). A dangling parent reference simply ends the walk — a missing node is not a cycle.
occ hrmq:rules:audit
Pages
OrgUnits and OrgUnitDetail (with child-unit and assignment lists),
plus OrgAssignments and OrgAssignmentDetail, live under the Personeel
menu group. EmployeeDetail lists each employee's assignments directly
on the personnel dossier.
The seeded example is a small Directie → Consultancy/Backoffice
hierarchy, including one deliberately inconsistent placement (an
endDate before its startDate) so the consistency rule has something
real to flag out of the box.
Out of scope
The interactive D3 tree visualisation, org-chart exports, point-in-time
snapshots, and reorg tooling are explicitly out of scope for this MVP —
tracked as follow-up capabilities (org-chart-visualization,
snapshot materialisation).