- Crowd Types + Persons CRUD (73 tests) - Festival Sections + Time Slots + Shifts CRUD met assign/claim flow (84 tests) - Invite Flow + Member Management met InvitationService (109 tests) - Schema v1.6 migraties volledig uitgevoerd - DevSeeder bijgewerkt met crowd types voor testorganisatie
93 lines
2.5 KiB
Markdown
93 lines
2.5 KiB
Markdown
# Crewli API Contract
|
|
|
|
Base path: `/api/v1/`
|
|
|
|
Auth: Bearer token (Sanctum)
|
|
|
|
## Auth
|
|
|
|
- `POST /auth/login`
|
|
- `POST /auth/logout`
|
|
- `GET /auth/me`
|
|
|
|
## Organisations
|
|
|
|
- `GET /organisations` — list (super admin)
|
|
- `POST /organisations` — create
|
|
- `GET /organisations/{org}` — show
|
|
- `PUT /organisations/{org}` — update
|
|
- `GET /organisations/{org}/members` — members
|
|
- `POST /organisations/{org}/invite` — invite user
|
|
|
|
## Events
|
|
|
|
- `GET /organisations/{org}/events`
|
|
- `POST /organisations/{org}/events`
|
|
- `GET /organisations/{org}/events/{event}`
|
|
- `PUT /organisations/{org}/events/{event}`
|
|
|
|
## Crowd Types
|
|
|
|
- `GET /organisations/{org}/crowd-types`
|
|
- `POST /organisations/{org}/crowd-types`
|
|
- `PUT /organisations/{org}/crowd-types/{type}`
|
|
- `DELETE /organisations/{org}/crowd-types/{type}`
|
|
|
|
## Companies
|
|
|
|
- `GET /organisations/{org}/companies`
|
|
- `POST /organisations/{org}/companies`
|
|
- `PUT /organisations/{org}/companies/{company}`
|
|
- `DELETE /organisations/{org}/companies/{company}`
|
|
|
|
## Festival Sections
|
|
|
|
- `GET /events/{event}/sections`
|
|
- `POST /events/{event}/sections`
|
|
- `PUT /events/{event}/sections/{section}`
|
|
- `DELETE /events/{event}/sections/{section}`
|
|
- `POST /events/{event}/sections/reorder`
|
|
|
|
## Time Slots
|
|
|
|
- `GET /events/{event}/time-slots`
|
|
- `POST /events/{event}/time-slots`
|
|
- `PUT /events/{event}/time-slots/{timeSlot}`
|
|
- `DELETE /events/{event}/time-slots/{timeSlot}`
|
|
|
|
## Shifts
|
|
|
|
- `GET /events/{event}/sections/{section}/shifts`
|
|
- `POST /events/{event}/sections/{section}/shifts`
|
|
- `PUT /events/{event}/sections/{section}/shifts/{shift}`
|
|
- `DELETE /events/{event}/sections/{section}/shifts/{shift}`
|
|
- `POST /events/{event}/sections/{section}/shifts/{shift}/assign`
|
|
- `POST /events/{event}/sections/{section}/shifts/{shift}/claim`
|
|
|
|
## Persons
|
|
|
|
- `GET /events/{event}/persons`
|
|
- `POST /events/{event}/persons`
|
|
- `GET /events/{event}/persons/{person}`
|
|
- `PUT /events/{event}/persons/{person}`
|
|
- `POST /events/{event}/persons/{person}/approve`
|
|
- `DELETE /events/{event}/persons/{person}`
|
|
|
|
## Crowd Lists
|
|
|
|
- `GET /events/{event}/crowd-lists`
|
|
- `POST /events/{event}/crowd-lists`
|
|
- `PUT /events/{event}/crowd-lists/{list}`
|
|
- `DELETE /events/{event}/crowd-lists/{list}`
|
|
- `POST /events/{event}/crowd-lists/{list}/persons`
|
|
- `DELETE /events/{event}/crowd-lists/{list}/persons/{person}`
|
|
|
|
## Locations
|
|
|
|
- `GET /events/{event}/locations`
|
|
- `POST /events/{event}/locations`
|
|
- `PUT /events/{event}/locations/{location}`
|
|
- `DELETE /events/{event}/locations/{location}`
|
|
|
|
_(Extend this contract per module as endpoints are implemented.)_
|