Business Objects
This section describes the core entities managed by the application and their relationships.
Entity hierarchy
All objects are scoped to a Project, which itself belongs to an Organisation. Objects are never shared between projects.
Organisation
└── Project
├── Group
│ └── Participant (member of, dates fallback)
├── Participant
├── Activity
└── VehicleEntities
| Entity | Description |
|---|---|
| Organisation | Top-level structure that owns one or more projects |
| Project | The central object — a group care facility for minors |
| Options | Feature flags that control which capabilities are available on a project |
| Group | A named collection of participants within a project |
| Participant | A person (minor or major) registered in a project |
| Activity | A recurring event that can be attached to a movement |
| Vehicle | A vehicle used during movements |
Dates and attendance
All objects have optional dates. When no dates are specified, the object is considered active for the full duration of its parent (or perpetually if the project itself has no dates).
Attendance fallback for participants
When a participant has no attendance dates of their own, the application resolves them in this order:
| Priority | Source |
|---|---|
| 1 | The participant's own dates (if set) |
| 2 | Their group's dates (if set, and the participant has none) |
| 3 | The project's dates (final fallback) |
INFO
A participant's dates must stay within the project dates. They can extend beyond their group's dates if needed — group dates serve only as a fallback, not as a hard constraint.
Activities and vehicles
Activity and vehicle availability is bounded directly by the project's dates, independently of any group or participant.