Apparence
Plans
Un plan (chart) est la carte d'une salle : ses sièges, ses rangées, ses zones. Il est réutilisable — la même salle sert à tous vos événements.
Un plan porte un statut — draft, published ou archived — et, séparément, un booléen pendingChanges qui indique qu'il a été modifié depuis sa dernière publication.
Statut et modifications en attente sont deux champs distincts
Il n'existe pas de statut pending. Un plan republiable est un plan published dont pendingChanges vaut true.
Lister les plans
GET /api/charts
Retourne tous les plans du workspace.
bash
curl https://api.mitoera.com/api/charts \
-u pk_xxxxxxxx:sk_xxxxxxxxts
const charts = await client.charts.listAll();php
$charts = $client->charts->listAll();json
[
{
"id": "01926a3f-1234-7abc-8def-000000000001",
"name": "Salle Olympia",
"objects": [],
"updatedAt": "2025-01-15T10:00:00Z",
"status": "published",
"pendingChanges": false,
"publishedSnapshot": null
}
]objects porte le dessin complet du plan — sièges, rangées, formes. Sur une grande salle, la liste peut être volumineuse : demandez un plan précis plutôt que la collection entière quand vous n'avez besoin que de l'un d'eux.
Créer un plan
POST /api/charts
Crée un plan vide, à remplir ensuite dans l'éditeur.
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | oui | Nom du plan |
bash
curl -X POST https://api.mitoera.com/api/charts \
-u pk_xxxxxxxx:sk_xxxxxxxx \
-H 'Content-Type: application/json' \
-d '{"name":"Salle Olympia"}'ts
const chart = await client.charts.create('Salle Olympia');php
$chart = $client->charts->create('Salle Olympia');Obtenir un plan
GET /api/charts/{chartId}
| Paramètre URL | Type | Description |
|---|---|---|
chartId | uuid | UUID du plan |
bash
curl https://api.mitoera.com/api/charts/01926a3f-1234-7abc-8def-000000000001 \
-u pk_xxxxxxxx:sk_xxxxxxxxts
const chart = await client.charts.get(chartId);php
$chart = $client->charts->get($chartId);json
{
"id": "01926a3f-1234-7abc-8def-000000000001",
"name": "Salle Olympia",
"objects": [ /* … */ ],
"updatedAt": "2025-01-15T10:00:00Z",
"status": "published",
"pendingChanges": true,
"publishedSnapshot": [ /* version servie aux événements */ ]
}publishedSnapshot est la version figée que voient les événements et le widget. Tant que vous ne republiez pas, vos modifications vivent dans objects sans affecter la vente.
Modifier un plan
PUT /api/charts/{chartId}
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | oui | Nouveau nom |
Cet endpoint ne modifie que le nom
Le dessin ne passe pas par ici : utilisez PUT /api/charts/{chartId}/objects ci-dessous. Un objects envoyé à PUT /api/charts/{chartId} est ignoré.
bash
curl -X PUT https://api.mitoera.com/api/charts/CHART_ID \
-u pk_xxxxxxxx:sk_xxxxxxxx \
-H 'Content-Type: application/json' \
-d '{"name":"Grande Salle"}'ts
await client.charts.update(chartId, { name: 'Grande Salle' });php
$client->charts->update($chartId, ['name' => 'Grande Salle']);Remplacer les objets du plan
PUT /api/charts/{chartId}/objects
Remplace en une fois l'ensemble des objets dessinés. C'est ce qu'utilise l'éditeur à chaque enregistrement.
| Champ | Type | Requis | Description |
|---|---|---|---|
objects | array | oui | Objets du plan — sièges, rangées, formes |
bash
curl -X PUT https://api.mitoera.com/api/charts/CHART_ID/objects \
-u pk_xxxxxxxx:sk_xxxxxxxx \
-H 'Content-Type: application/json' \
-d '{"objects":[ ... ]}'ts
await client.charts.setObjects(chartId, objects);php
$client->charts->setObjects($chartId, $objects);Publier un plan
POST /api/charts/{chartId}/publish
Rend le plan utilisable : il devient associable à des événements et affichable par le widget.
bash
curl -X POST https://api.mitoera.com/api/charts/CHART_ID/publish \
-u pk_xxxxxxxx:sk_xxxxxxxxts
await client.charts.publish(chartId);php
$client->charts->publish($chartId);Cycle de publication
Publier fige le dessin courant dans publishedSnapshot et remet pendingChanges à false. Toute modification ultérieure repasse pendingChanges à true : les événements continuent de servir le snapshot publié jusqu'à la republication. POST /api/charts/{chartId}/mark-pending force ce drapeau sans toucher au statut.
Changer le statut
PATCH /api/charts/{chartId}/status
| Champ | Type | Requis | Description |
|---|---|---|---|
status | string | oui | draft, published ou archived |
Toute autre valeur est refusée. pendingChanges n'est pas un statut : il se pilote par POST /api/charts/{chartId}/mark-pending et se remet à zéro à la publication.
Supprimer un plan
DELETE /api/charts/{chartId}
Impossible si le plan est lié à des événements actifs — l'API répond alors 409.
bash
curl -X DELETE https://api.mitoera.com/api/charts/CHART_ID \
-u pk_xxxxxxxx:sk_xxxxxxxxts
await client.charts.delete(chartId);php
$client->charts->delete($chartId);Catégories d'un plan
Les catégories sont rattachées au plan. Leurs endpoints sont documentés sur Catégories :
| GET | /api/charts/{chartId}/categories |
| POST | /api/charts/{chartId}/categories |
| GET | /api/charts/{chartId}/categories/{key} |
| PUT | /api/charts/{chartId}/categories/{key} |
| DELETE | /api/charts/{chartId}/categories/{key} |

