SuccessionPipelineMember
A SuccessionPipelineMember is one candidate on a pipeline, stored as a snapshot of the person rather than a live reference.
Purpose
Section titled “Purpose”Members come from two places: a FocusIndividual profiled on a project, or a leader listed in a project’s groupings data who has no record of their own. Either way the identifying fields are copied onto the row at add time. The snapshot columns are the render source of truth, so a member survives a groupings re-import or the deletion of the project they came from. source_key is the deduplication identity, built by keyForFocusIndividual() or keyForLeader() on the model — the only place that rule lives.
Members are added, moved between timeframes and removed from the succession page.
app/Services/SuccessionPipelineWriter.php— all member writes, usingsource_keyto avoid duplicates.app/Http/Controllers/Projects/SuccessionPipelineMemberStoreController.php— adds a member.app/Http/Controllers/Projects/SuccessionPipelineMemberUpdateController.php— changes timeframe or role.app/Http/Controllers/Projects/SuccessionPipelineMemberDestroyController.php— removes a member.app/Services/SuccessionPipelineService.php— groups members by timeframe for the payload.
Relationships
Section titled “Relationships”| Relation | Type | Related model |
|---|---|---|
pipeline |
belongsTo |
SuccessionPipeline |
role |
belongsTo |
SuccessionPipelineRole |
focusIndividual |
belongsTo |
FocusIndividual |
sourceProject |
belongsTo |
Project |
addedBy |
belongsTo |
User |
$touches = ['pipeline'] means saving a member updates the pipeline’s updated_at.
Data shape
Section titled “Data shape”Table succession_pipeline_members. Primary key is a UUID (HasUuids).
| Column | Type | Notes |
|---|---|---|
id |
uuid |
Primary key |
succession_pipeline_id |
uuid |
FK to succession_pipelines |
succession_pipeline_role_id |
uuid |
Nullable, FK to roles |
timeframe |
SuccessionTimeframe |
ready, within_year, longer_term |
source_type |
SuccessionMemberSource |
focus_individual, groupings_leader |
source_key |
string |
Dedup identity, fi: or gl: prefixed |
focus_individual_id |
uuid |
Nullable provenance FK |
source_project_id |
uuid |
Nullable provenance FK |
added_by_user_id |
uuid |
Nullable, FK to users |
name |
string |
Snapshotted display name |
source_label |
string |
Nullable, snapshotted credit label |
source_snapshot |
array |
Nullable, JSON cast |
created_at, updated_at |
datetime |
Timestamps |