Organization
An organization is the tenant, usually a company or other legal entity. Everything on the platform belongs to exactly one, pointed at by owner_id.
Organizations nest to model internal structure. The parent is the company, the children are departments, units, teams or whatever shape the user wants. Each child owns its own subtree and can't see its siblings. A property manager or a facilities group is a child, not a tenant.
What an organization owns
| Resource | What it is |
|---|---|
| Locations | Physical sites |
| Bookables | Things you can book |
| Bookable types | Classifications for bookables |
| Capabilities | Features attached to bookables and other objects |
| Bookings | Reservations on bookables |
| Checkins | Arrivals and departures against bookings |
| Claims | Access grants |
| Codes | Scannable identifiers |
| Timeslots | Scheduling windows |
| Actions | Server side code bound to triggers |
| Assets | Files and images |
Reading at the organization level
The organization endpoints can return just that organization's resources, or walk the tree and return everything inside it. Pass ?inherits=true on any endpoint that supports it to roll up children. Default is the single org.
GET /organization/{id}/booking lists bookings on the org's bookables, or across the whole subtree with inherits=true.
GET /organization/{id}/calendar expands recurrence over the same scope.
GET /organization/{id}/available returns the total free time over the same scope. Most clients use the location level instead since "free rooms in this building" is the more common question.
Same composition as anywhere else, see Calendar and Availability.
API
See the Organization tag for CRUD, the three views above, owned claims and assets, search, applied timeslots and bound actions.