Entities¶
This page is the reference for FedMS' data model in code. For the domain-level meaning of each concept, see the Concepts section.
The entity type map¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
The two worlds¶
Always remember: orgs, events, and sessions exist as two parallel entities:
| Concept | Group entity | Content entity |
|---|---|---|
| Org | group (bundle org) |
(none — orgs have no editorial content entity) |
| Event | group (bundle event) |
fedms_event |
| Session | group (bundle session) |
fedms_session |
The group side owns structure, membership, and federation; the content side owns editorial body and translations. See Concepts → index.
Entity-class reference¶
| Entity type | PHP class |
|---|---|
fedms_event |
Drupal\fedms_content\Entity\Event |
fedms_session |
Drupal\fedms_content\Entity\Session |
fedms_attachment |
Drupal\fedms_attachment\Entity\Attachment |
fedms_task |
Drupal\fedms_task\Entity\Task |
fedms_task_pattern |
Drupal\fedms_task\Entity\TaskPattern |
All five extend RevisionableContentEntityBase (content entities)
or ConfigEntityBase (the pattern), and all five use
declare(strict_types=1);.
Field reference¶
Group fields (added by fedms_federation)¶
| Field | On | Type | Purpose |
|---|---|---|---|
field_address |
org | address | Postal address. |
field_phone |
org | telephone | Phone. |
field_email |
org | Email. | |
field_homepage |
org | link | Website. |
field_logo |
org | media reference | Logo. |
field_color |
org | color_field | Brand color. |
field_url |
org | link | Canonical URL. |
field_org_types |
org | taxonomy_term reference | Categorization. |
field_license_type |
org | list_string | License tier. |
field_gitlab_id |
org | string | GitLab project ID — federation anchor. |
field_date |
event, session | smart_date | Start/end window. |
field_venue |
event, session | text_long | Venue. |
field_accommodations |
event, session | text_long | Accommodation info. |
field_description |
org, event, session | text_long (paragraph in content world) | Short description. |
field_event_profile |
event | entity_reference | Reusable event profile (planned). |
field_session_profile |
session | entity_reference | Reusable session profile (planned). |
field_flag_start_processed |
event, session | boolean | Lifecycle: start-of-window processed? |
field_flag_end_processed |
event, session | boolean | Lifecycle: end-of-window processed? |
field_sync |
event, session | boolean | Federation sync marker. |
subgroup_depth, subgroup_left, subgroup_right, subgroup_tree |
all three | various | Subgroup-tree metadata maintained by the subgroup module. |
group_relationship base fields (added by fedms_federation)¶
| Field | Type | Purpose |
|---|---|---|
status |
boolean | Soft-delete switch. FALSE = removed but preserved. |
fedms_event / fedms_session base fields¶
(See src/Entity/Event.php and src/Entity/Session.php in
fedms_content.)
| Field | Type |
|---|---|
status |
boolean |
description |
entity_reference_revisions (paragraph) — unlimited, translatable |
uid |
entity_reference (user) — owner |
created, changed |
created / changed |
fedms_attachment base fields¶
(See src/Entity/Attachment.php in fedms_attachment.)
| Field | Type |
|---|---|
label |
string |
status |
boolean |
uid |
entity_reference (user) — owner |
created, changed |
created / changed |
description |
entity_reference_revisions (paragraph) — unlimited |
group |
entity_reference (group, bundles event + session) |
assignee |
entity_reference (user) — unlimited |
visibility |
list_string (private, group, public) |
fedms_task_patterns |
list_string — unlimited |
Default attachment-type bundle ships field_video.
fedms_task base fields¶
(See src/Entity/Task.php in fedms_task.)
| Field | Type |
|---|---|
label |
string — required |
status |
boolean — completion flag |
uid |
entity_reference (user) — owner / author |
created, changed |
created / changed |
assignee |
entity_reference (user) — required |
group |
entity_reference (group) — required |
milestone |
entity_reference (taxonomy_term) — required |
pattern |
entity_reference (fedms_task_pattern) |
actionable, due |
timestamp |
attachment |
entity_reference (fedms_attachment) |
media |
entity_reference (media) |
node |
entity_reference (node) |
user |
entity_reference (user) |
webform |
entity_reference (webform) |
webform_submission |
entity_reference (webform_submission) |
node / media base fields (added by fedms_task)¶
| Field | Type |
|---|---|
fedms_task_patterns |
list_string — unlimited |
(fedms_attachment ships its own equivalent on the attachment entity
directly, so it's not added there by fedms_task.)
fedms_task_pattern config fields¶
(See src/Entity/TaskPattern.php in fedms_task.)
| Field | Type | Purpose |
|---|---|---|
id |
string | Machine name. |
label |
string | Pattern label. |
taskLabel |
string | Task label template (tokens supported). |
milestone |
string | UUID of the milestone term. |
rule |
string | ECA rule ID. |
conditions |
array of string | Condition plugin IDs. |
conditionArguments |
array | Per-condition arguments. |
successors |
array of string | Successor pattern IDs. |
actionableRelation |
string | task created / session start / session end. |
actionableRelationDate |
string | DateTime::modify() modifier. |
dueRelation, dueRelationDate |
same | Same, for the due timestamp. |
Group relationship types (fedms_federation)¶
The full matrix:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Each is a group.relationship_type.<id> config entity.
Cross-world navigation in code¶
To go between the group world and the content world:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Next steps¶
- Modules — where each entity is owned.
- ECA models — how entities trigger behavior.
- Concepts — the user-facing definitions.