Establish an organization and its hierarchy
Purpose
An association needs to recognize member firms, chapters, and other bodies independently of the people who represent them. This capability establishes each organization and records its parent relationship, giving affiliations and organizational work a stable reference and giving readers a current view of the wider hierarchy.
How It Works
Staff supply a name, optional organization type and parent, and organizational information. Rhythm checks the workspace references and field limits, prepares a logo when supplied, and creates the record with its own organization number. Organization numbering is separate from person numbering, and a client-supplied number does not choose that sequence.
The saved parent is the basis for ancestry. Reads walk the current parent chain to derive nearest ancestors and the top-level organization; supplied ancestry does not dictate the result. A parent move therefore affects descendant reads immediately without resaving them. Self-parenting and descendant-parenting are refused, and concurrent opposing moves cannot both establish a loop.
Website and domain values can derive their counterpart when only one recognizable value is supplied. Status describes the organization separately from archive. Console creation is within the recorded milestone; the formal contract describes existing organization editing through the service pending the fuller organization editor.
Example
A coordinator creates Harbor West Chapter beneath Harbor National, with the chapter's address and website. Reading the chapter shows the national body's ancestry relationship and a derived domain. Later a service update moves the chapter beneath Harbor Regional Council. The next chapter read reports that new chain; trying to place the council beneath its own chapter is refused without creating a cycle.
The coordinator reads Harbor West's assigned identity and number before the move and compares them afterwards. Those values still name the same chapter; the derived ancestor list changes. If she submits an unknown council identity, the move refuses the parent reference rather than disconnecting the chapter from the national body. Two callers attempting opposing moves cannot both establish their requested structure: after the first commits, the second move is refused as cyclic. The caller rereads the actual hierarchy before proposing another placement. This verifies the hierarchy result rather than counting a successful HTTP response as sufficient evidence.
Why It Works This Way
Our reading is that independent organization identities let a representative change without turning the organization into a different body. Workspace-owned references prevent an accidental cross-customer parent or type. Cycle prevention protects both navigation and descendant queries; checking only the proposed record without coordinating concurrent moves would leave a race that could invalidate the hierarchy.
Deriving ancestry on read avoids stale descendant copies after a parent move. Separate counters keep person and organization numbering independent, while allowed gaps mean refused writes need not recycle an identity-like number. Logo preparation before persistence protects the previous image on failure. The console boundary matters because a service capability is not evidence that every staff editing action exists on a page.
Relationships
Maintain a person’s organizational relationships connects people to these organizations. Locate people and organizations consumes their hierarchy for descendant discovery. Organization Type supplies classification and role policy; Review organization role compliance and prepare notices owns derived assessments. Platform owns file storage and definitions, and Data Quality owns duplicate decisions that creation may encounter.