feat: add "Lid toevoegen als deelnemer" shortcut for org members
Adds two new API endpoints to quickly add organisation members as event
persons with user_id pre-linked and status approved:
- GET /organisations/{org}/members/available-for-event/{event}
- POST /organisations/{org}/events/{event}/persons/from-member
Includes frontend dialog with member search, crowd type selection, and
click-to-add behavior in the Personen tab.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -355,6 +355,50 @@ Validates:
|
||||
- `PUT /organisations/{org}/events/{event}/persons/{person}`
|
||||
- `POST /organisations/{org}/events/{event}/persons/{person}/approve`
|
||||
- `DELETE /organisations/{org}/events/{event}/persons/{person}`
|
||||
- `POST /organisations/{org}/events/{event}/persons/from-member` — create person from org member
|
||||
- `GET /organisations/{org}/members/available-for-event/{event}` — list members not yet added to event
|
||||
|
||||
### Create Person from Member
|
||||
|
||||
`POST /organisations/{org}/events/{event}/persons/from-member`
|
||||
|
||||
Creates a Person record from an existing organisation member. The person is created with `status: approved` and `user_id` pre-linked.
|
||||
|
||||
```json
|
||||
{
|
||||
"user_id": "01JXYZ...",
|
||||
"crowd_type_id": "01JXYZ..."
|
||||
}
|
||||
```
|
||||
|
||||
Person data (first_name, last_name, email) is copied from the user account. Returns `PersonResource` (201).
|
||||
|
||||
**Validation:**
|
||||
- User must belong to the organisation
|
||||
- User must not already be a person at this event (422)
|
||||
- crowd_type_id must belong to the organisation
|
||||
|
||||
### Available Members for Event
|
||||
|
||||
`GET /organisations/{org}/members/available-for-event/{event}`
|
||||
|
||||
Returns organisation members who do NOT yet have a Person record at the specified event. Used to populate the "Lid toevoegen" dialog.
|
||||
|
||||
```json
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"id": "01JXYZ...",
|
||||
"first_name": "Jan",
|
||||
"last_name": "de Vries",
|
||||
"full_name": "Jan de Vries",
|
||||
"email": "jan@example.nl"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Auth: org member or higher on the organisation.
|
||||
|
||||
## Identity Matches
|
||||
|
||||
|
||||
Reference in New Issue
Block a user