feat(videochat): implement LiveKit integration for video chat functionality

- Add LiveKit client setup and token generation for room access.
- Implement room management functions including CreateRoom, OpenRoom, ListRooms, and DeleteRoom.
- Introduce participant management with ListParticipants and RemoveParticipant functions.
- Create tests for room and participant management, ensuring proper authentication and authorization.
- Add error handling for LiveKit API interactions.
- Define data structures for room metadata and token responses.
- Implement status endpoint for service availability check.
This commit is contained in:
fabio
2026-09-29 18:45:21 +02:00
parent a051eef991
commit 0fe1bc2292
21 changed files with 1904 additions and 12 deletions

View File

@@ -48,3 +48,25 @@ http://localhost:9400/
```
Le API locali sono esposte dall'ambiente Encore locale. Consulta il Service Catalog nel dashboard per endpoint e schema aggiornati.
## Videochat
Il servizio `videochat` integra LiveKit per gestire stanze, partecipanti e token di accesso.
Configurazione e API: [videochat/README.md](videochat/README.md).
### Setup personale
`GET /profiles/personal-setup` restituisce il setup dell'utente autenticato:
`user_id`, `can_broadcast` (bool) e `room_name` (string).
In assenza di setup, restituisce `can_broadcast: false` e `room_name: ""`.
Gli amministratori possono impostarlo con `PUT /profiles/personal-setup/:userID`:
```json
{"can_broadcast": true, "room_name": "stanza-utente"}
```
Il nome stanza è obbligatorio quando il broadcasting è abilitato e viene cancellato
quando è disabilitato. Il setup è salvato nel database `profiles` dalla migrazione 11.
Queste API gestiscono i dati del setup; l'applicazione del permesso ai token LiveKit
e la creazione della stanza non sono automatiche.