Skip to content

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_xxxxxxxx
ts
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.

ChampTypeRequisDescription
namestringouiNom 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 URLTypeDescription
chartIduuidUUID du plan
bash
curl https://api.mitoera.com/api/charts/01926a3f-1234-7abc-8def-000000000001 \
  -u pk_xxxxxxxx:sk_xxxxxxxx
ts
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}

ChampTypeRequisDescription
namestringouiNouveau 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.

ChampTypeRequisDescription
objectsarrayouiObjets 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_xxxxxxxx
ts
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

ChampTypeRequisDescription
statusstringouidraft, 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_xxxxxxxx
ts
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}

API, SDK et widget de plans de salle.