{"openapi":"3.0.3","info":{"title":"CROUStillantAPI","version":"v1.2.0","description":"\n# \ud83d\udcdd \u2022 Introduction\n![banner](https://raw.githubusercontent.com/CROUStillant-Developpement/CROUStillantAssets/main/images/banner.png)  \nCROUStillant est un projet open-source et gratuit qui a pour but de fournir des informations sur les menus des restaurants universitaires en France et en Outre-Mer.  \n\u2063  \nL'API CROUStillant permet d'acc\u00e9der \u00e0 toutes les informations stock\u00e9es dans la base de donn\u00e9es du projet :  \n- Les r\u00e9gions o\u00f9 se trouvent les restaurants universitaires.  \n- Les restaurants universitaires.  \n- Les menus et plats propos\u00e9s par les restaurants universitaires.  \n\n\u2063  \n\ud83d\udcbb *Si vous souhaitez contribuer au projet, vous pouvez consulter nos d\u00e9p\u00f4ts sur GitHub : [github.com/CROUStillant-Developpement](https://github.com/CROUStillant-Developpement) !*  \n\u2063  \n# \ud83d\udd12 \u2022 Authentification\nL'API CROUStillant ne n\u00e9cessite pas d'authentification pour acc\u00e9der aux donn\u00e9es.  \nCependant **les requ\u00eates sont limit\u00e9es \u00e0 200 par minute par adresse IP**.  \n\u2063  \n\ud83c\udfeb *Si vous \u00eates une organisation (universit\u00e9, entreprise, association, etc.), ou un particulier et que vous avez besoin de plus de requ\u00eates, vous pouvez nous contacter \u00e0 l'adresse suivante : [croustillant@bayfield.dev](mailto:croustillant@bayfield.dev) !*   \n\u2063  \n# \u2699\ufe0f \u2022 Donn\u00e9es\n- Les donn\u00e9es sont mises \u00e0 jour plusieurs fois par jour, en fonction des changements dans les menus des restaurants universitaires.\n- Toutes les dates sont stock\u00e9es en UTC+0.  \n\u2063  \n# \ud83d\udcc4 \u2022 Termes d'utilisation\nIl y a quelques r\u00e8gles \u00e0 respecter pour toute utilisation de l'API CROUStillant :\n- Vous ne pouvez pas utiliser l'API \u00e0 des fins commerciales.\n- Vous ne pouvez pas utiliser l'API pour des activit\u00e9s ill\u00e9gales / malveillantes.\n- Vous ne devez pas abuser de l'API (limite de 200 requ\u00eates par minute), l'utilisation de plusieurs adresses IP pour contourner cette limite est interdite.  \n- Vous devez cr\u00e9diter CROUStillant (voir la section \"Cr\u00e9dits\" ci-dessous).\n\n\u2063  \n\u26a0\ufe0f ***Tout abus de l'API entra\u00eenera un bannissement temporaire ou d\u00e9finitif.***\n\u2063  \n# \ud83d\udcd1 \u2022 Cr\u00e9dits\nPour toute utilisation de l'API CROUStillant ou de ses parties, merci de cr\u00e9diter le projet en mentionnant \"CROUStillant\" et en incluant un lien vers le site officiel du projet : [https://croustillant.menu](https://croustillant.menu).  \nExemple de cr\u00e9dit \u00e0 afficher sur un site web, une application, un projet, etc... :   \n> Donn\u00e9es fournies par [CROUStillant.menu](https://croustillant.menu)  \n> Propuls\u00e9 par [CROUStillant.menu](https://croustillant.menu)  \n> Menus fournis par [CROUStillant.menu](https://croustillant.menu)  \n> Application r\u00e9alis\u00e9e avec [CROUStillant.menu](https://croustillant.menu)  \n> API r\u00e9alis\u00e9e avec [CROUStillant.menu](https://croustillant.menu)  \n> ...\n\n\u2063  \n# \ud83d\udce9 \u2022 Contact\nPour toute question, suggestion, bug, ou probl\u00e8me n'h\u00e9sitez pas \u00e0 nous contacter !  \n- E-mail : [croustillant@bayfield.dev](mailto:croustillant@bayfield.dev)  \n- GitHub : [github.com/CROUStillant-Developpement](https://github.com/CROUStillant-Developpement)  \n\n\u2063  \n![empty](https://croustillant.menu/banner-small.png)  \n\n**CROUStillant D\u00e9veloppement \u00a9 2022 - 2026 | Tous droits r\u00e9serv\u00e9s.**  \n*CROUStillant n'est pas affili\u00e9 au 'CROUS' ou au 'CNOUS'.*  \n","contact":{"email":"croustillant@bayfield.dev"}},"paths":{"/v1/regions":{"get":{"operationId":"get~Regions.getRegions","summary":"Liste des r\u00e9gions","description":"Liste des r\u00e9gions disponibles.","tags":["Regions"],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"description":"Liste des r\u00e9gions"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Liste des r\u00e9gions disponibles"}}}},"/v1/restaurants/status/minimal":{"get":{"operationId":"get~Restaurants.getRestaurantsStatusMinimal","summary":"Statut d'ouverture minimal des restaurants","tags":["Restaurants"],"parameters":[{"name":"ouvert","schema":{"type":"boolean"},"description":"Filtre les restaurants par statut d'ouverture","required":false,"in":"query"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"actif":{"type":"boolean","description":"Le restaurant est-il actif ?","example":true},"code":{"type":"integer","format":"int32","description":"Identifiant du restaurant","example":1},"ouvert":{"type":"boolean","description":"Le restaurant est-il ouvert ?","example":true}}},"description":"Liste des statuts minimaux des restaurants"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Liste des statuts minimaux des restaurants."}},"description":"Liste des restaurants actifs avec leur statut d'ouverture (champs minimaux : code, actif, ouvert)."}},"/v1/restaurants/status":{"get":{"operationId":"get~Restaurants.getRestaurantsStatus","summary":"Statut d'ouverture des restaurants","tags":["Restaurants"],"parameters":[{"name":"ouvert","schema":{"type":"boolean"},"description":"Filtre les restaurants par statut d'ouverture","required":false,"in":"query"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"actif":{"type":"boolean","description":"Le restaurant est-il actif ?","example":true},"code":{"type":"integer","format":"int32","description":"Identifiant du restaurant","example":1},"nom":{"type":"string","description":"Nom du restaurant","example":"Resto U' Cap Sud"},"ouvert":{"type":"boolean","description":"Le restaurant est-il ouvert ?","example":true},"region":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"type_restaurant":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du type de restauration","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du type de restauration","example":"Restaurant"}}}}},"description":"Liste des statuts des restaurants"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Liste des statuts des restaurants."}},"description":"Liste des restaurants actifs avec leur statut d'ouverture."}},"/v1/restaurants/types":{"get":{"operationId":"get~Restaurants.getTypesRestaurants","summary":"Liste des types de restaurants","description":"Liste des types de restaurants disponibles.","tags":["Restaurants"],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du type de restauration","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du type de restauration","example":"Restaurant"}}},"description":"Liste des restaurants"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Liste des types des restaurants disponibles"}}}},"/v1/restaurants":{"get":{"operationId":"get~Restaurants.getRestaurants","summary":"Liste des restaurants","description":"Liste des restaurants disponibles.","tags":["Restaurants"],"parameters":[{"name":"zone","schema":{"type":"string"},"description":"Filtre les restaurants par zone (insensible \u00e0 la casse)","required":false,"in":"query"},{"name":"ispmr","schema":{"type":"boolean"},"description":"Filtre les restaurants accessibles aux PMR","required":false,"in":"query"},{"name":"type","schema":{"type":"integer","format":"int32"},"description":"Filtre les restaurants par code de type","required":false,"in":"query"},{"name":"region","schema":{"type":"integer","format":"int32"},"description":"Filtre les restaurants par code de r\u00e9gion","required":false,"in":"query"},{"name":"ouvert","schema":{"type":"boolean"},"description":"Filtre les restaurants par statut d'ouverture","required":false,"in":"query"},{"name":"actif","schema":{"type":"boolean"},"description":"Renvoie uniquement les restaurants actifs","required":false,"in":"query"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"acces":{"type":"string","description":"Informations sur l'acc\u00e8s au restaurant","example":["Bus 2,4, 6, 13"]},"actif":{"type":"boolean","description":"Le restaurant est-il actif ?","example":true},"adresse":{"type":"string","description":"Adresse du restaurant","example":"2 avenue Poplawski \u00e0 PAU"},"code":{"type":"integer","format":"int32","description":"Identifiant du restaurant","example":1},"email":{"type":"string","description":"Adresse email du restaurant","example":null},"horaires":{"type":"array","items":{"type":"string"},"description":"Horaires d'ouverture du restaurant","example":["du lundi au vendredi","SELF : 11h15 - 13h45 | 18h-19h30","BAR : 11h30-14h","SANDWICHERIE : 11h15 - 13h45","L'OASIS (restaurant administratif) : 11h30 - 13h45"]},"image_url":{"type":"string","description":"URL de l'image du restaurant","example":null},"ispmr":{"type":"boolean","description":"Le restaurant est-il accessible aux PMR ?","example":true},"jours_ouvert":{"type":"array","items":{"type":"object","properties":{"jour":{"type":"string","description":"Jours de la semaine","example":"Lundi"},"ouverture":{"type":"object","properties":{"matin":{"type":"boolean","description":"Ouverture le matin","example":true},"midi":{"type":"boolean","description":"Ouverture le midi","example":true},"soir":{"type":"boolean","description":"Ouverture le soir","example":true}}}}},"description":"Jours d'ouverture du restaurant"},"latitude":{"type":"number","format":"float","description":"Latitude du restaurant","example":43.313084},"longitude":{"type":"number","format":"float","description":"Longitude du restaurant","example":-0.367188},"nom":{"type":"string","description":"Nom du restaurant","example":"Resto U' Cap Sud"},"paiement":{"type":"array","items":{"type":"string"},"description":"Moyens de paiement accept\u00e9s par le restaurant","example":["Carte bancaire","IZLY"]},"region":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"telephone":{"type":"string","description":"Num\u00e9ro de t\u00e9l\u00e9phone du restaurant","example":null},"type_restaurant":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du type de restauration","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du type de restauration","example":"Restaurant"}}},"zone":{"type":"string","description":"Zone du restaurant","example":"Pau"}}},"description":"Liste des restaurants"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Liste des restaurants disponibles"}}}},"/v1/stats":{"get":{"operationId":"get~Service.getStats","summary":"Statistiques de l'API","description":"Retourne les statistiques de l'API.","tags":["Service"],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"categories":{"type":"integer","format":"int32","description":"Nombre de cat\u00e9gories","example":19776},"compositions":{"type":"integer","format":"int32","description":"Nombre de compositions","example":77694},"menus":{"type":"integer","format":"int32","description":"Nombre de menus","example":5084},"plats":{"type":"integer","format":"int32","description":"Nombre de plats","example":6184},"regions":{"type":"integer","format":"int32","description":"Nombre de r\u00e9gions","example":26},"repas":{"type":"integer","format":"int32","description":"Nombre de repas","example":6818},"restaurants":{"type":"integer","format":"int32","description":"Nombre de restaurants","example":982},"restaurants_actifs":{"type":"integer","format":"int32","description":"Nombre de restaurants actifs","example":962},"types_restaurants":{"type":"integer","format":"int32","description":"Nombre de types de restaurants","example":16}}},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"L'API est en ligne."}}}},"/v1/status":{"get":{"operationId":"get~Service.getStatus","summary":"Statut de l'API","description":"Retourne le statut de l'API.","tags":["Service"],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"L'API est en ligne."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"L'API est en ligne."}}}},"/v1/plats/top":{"get":{"operationId":"get~Plats.getPlatTop","summary":"Top 100 des plats","description":"Top 100 des plats les plus populaires.","tags":["Plats"],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"},"total":{"type":"integer","format":"int32","description":"Nombre de fois d'apparition du plat","example":10}}},"description":"Liste des plats"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Top 100 des plats les plus populaires."}}}},"/v1/plats":{"get":{"operationId":"get~Plats.getPlats","summary":"Liste des 100 derniers plats","description":"Liste des 100 derniers plats ajout\u00e9s \u00e0 la base de donn\u00e9es.","tags":["Plats"],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"}}},"description":"Liste des plats"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Liste des 100 derniers plats ajout\u00e9s \u00e0 la base de donn\u00e9es."}}}},"/v1/taches":{"get":{"operationId":"get~Taches.getTaches","summary":"Liste des 100 derni\u00e8res t\u00e2ches","description":"Liste des 100 derni\u00e8res t\u00e2ches ajout\u00e9es \u00e0 la base de donn\u00e9es.","tags":["Taches"],"parameters":[{"name":"offset","schema":{"type":"boolean"},"description":"D\u00e9calage pour la pagination","required":false,"in":"query"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"debut":{"type":"string","description":"Date de d\u00e9but de la t\u00e2che","example":"21-10-2024 00:00:00"},"debut_categories":{"type":"integer","format":"int32","description":"Nombre de cat\u00e9gories r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_compositions":{"type":"integer","format":"int32","description":"Nombre de compositions r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_menus":{"type":"integer","format":"int32","description":"Nombre de menus r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_plats":{"type":"integer","format":"int32","description":"Nombre de plats r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_regions":{"type":"integer","format":"int32","description":"Nombre de r\u00e9gions r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_repas":{"type":"integer","format":"int32","description":"Nombre de repas r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_restaurants":{"type":"integer","format":"int32","description":"Nombre de restaurants r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_types_restaurants":{"type":"integer","format":"int32","description":"Nombre de types de restaurants r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"fin":{"type":"string","description":"Date de fin de la t\u00e2che","example":"21-10-2024 00:00:00"},"fin_categories":{"type":"integer","format":"int32","description":"Nombre de cat\u00e9gories r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_compositions":{"type":"integer","format":"int32","description":"Nombre de compositions r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_menus":{"type":"integer","format":"int32","description":"Nombre de menus r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_plats":{"type":"integer","format":"int32","description":"Nombre de plats r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_regions":{"type":"integer","format":"int32","description":"Nombre de r\u00e9gions r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_repas":{"type":"integer","format":"int32","description":"Nombre de repas r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_restaurants":{"type":"integer","format":"int32","description":"Nombre de restaurants r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_types_restaurants":{"type":"integer","format":"int32","description":"Nombre de types de restaurants r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"id":{"type":"string","description":"Identifiant de la t\u00e2che","example":1},"requetes":{"type":"integer","format":"int32","description":"Nombre de requ\u00eates effectu\u00e9es","example":900}}},"description":"Liste des t\u00e2ches"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Liste des 100 derni\u00e8res t\u00e2ches ajout\u00e9es \u00e0 la base de donn\u00e9es."}}}},"/v1/interne/changelog":{"get":{"operationId":"get~Interne.getChangelog","summary":"Changelog des services de CROUStillant","description":"Retourne le changelog des services de CROUStillant.","tags":["Interne"],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"CROUStillant":{"type":"array","items":{"type":"object","properties":{"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Nom du contributeur","example":"Paul Bayfield"},"role":{"type":"object","description":"R\u00f4le du contributeur","properties":{"fr":{"type":"string","description":"R\u00f4le du contributeur en fran\u00e7ais","example":"Fondateur du projet et d\u00e9veloppeur principal"},"en":{"type":"string","description":"R\u00f4le du contributeur en anglais","example":"Project founder and lead developer"}}}}},"description":"Liste des contributeurs"},"date":{"type":"string","description":"Date de la version","example":"2024-12-30T11:57:00Z"},"en":{"type":"object","description":"Informations en anglais","properties":{"title":{"type":"string","description":"Titre de la version","example":"CROUStillant Web"},"shortDescription":{"type":"string","description":"Description courte de la version","example":"CROUStillant Web is a web version of CROUStillant, accessible from any browser."},"fullDescription":{"type":"string","description":"Description compl\u00e8te de la version","example":"CROUStillant Web is a web version of CROUStillant, accessible from any browser. This version allows you to view the menus for the week, the day, and the evening of University Restaurants in France and overseas."}}},"fr":{"type":"object","description":"Informations en fran\u00e7ais","properties":{"title":{"type":"string","description":"Titre de la version","example":"CROUStillant Web"},"shortDescription":{"type":"string","description":"Description courte de la version","example":"CROUStillant Web est une version web de CROUStillant, accessible depuis n'importe quel navigateur."},"fullDescription":{"type":"string","description":"Description compl\u00e8te de la version","example":"CROUStillant Web est une version web de CROUStillant, accessible depuis n'importe quel navigateur. Cette version permet de consulter les menus de la semaine, de la journ\u00e9e, et de la soir\u00e9e des Restaurants Universitaires de France et d'outre-mer."}}},"version":{"type":"string","description":"Version de l'API","example":"v1.0.0"}}},"description":"Changelog des services de CROUStillant"}}},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Les derni\u00e8res modifications des services de CROUStillant."}}}},"/v1/regions/{code}/restaurants":{"get":{"operationId":"get~Regions.getRegionRestaurants","summary":"Liste des restaurants d'une r\u00e9gion","description":"Liste des restaurants disponibles dans une r\u00e9gion en fonction de son code.","tags":["Regions"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID de la r\u00e9gion","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"La r\u00e9gion n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID de la r\u00e9gion doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"acces":{"type":"string","description":"Informations sur l'acc\u00e8s au restaurant","example":["Bus 2,4, 6, 13"]},"actif":{"type":"boolean","description":"Le restaurant est-il actif ?","example":true},"adresse":{"type":"string","description":"Adresse du restaurant","example":"2 avenue Poplawski \u00e0 PAU"},"code":{"type":"integer","format":"int32","description":"Identifiant du restaurant","example":1},"email":{"type":"string","description":"Adresse email du restaurant","example":null},"horaires":{"type":"array","items":{"type":"string"},"description":"Horaires d'ouverture du restaurant","example":["du lundi au vendredi","SELF : 11h15 - 13h45 | 18h-19h30","BAR : 11h30-14h","SANDWICHERIE : 11h15 - 13h45","L'OASIS (restaurant administratif) : 11h30 - 13h45"]},"image_url":{"type":"string","description":"URL de l'image du restaurant","example":null},"ispmr":{"type":"boolean","description":"Le restaurant est-il accessible aux PMR ?","example":true},"jours_ouvert":{"type":"array","items":{"type":"object","properties":{"jour":{"type":"string","description":"Jours de la semaine","example":"Lundi"},"ouverture":{"type":"object","properties":{"matin":{"type":"boolean","description":"Ouverture le matin","example":true},"midi":{"type":"boolean","description":"Ouverture le midi","example":true},"soir":{"type":"boolean","description":"Ouverture le soir","example":true}}}}},"description":"Jours d'ouverture du restaurant"},"latitude":{"type":"number","format":"float","description":"Latitude du restaurant","example":43.313084},"longitude":{"type":"number","format":"float","description":"Longitude du restaurant","example":-0.367188},"nom":{"type":"string","description":"Nom du restaurant","example":"Resto U' Cap Sud"},"paiement":{"type":"array","items":{"type":"string"},"description":"Moyens de paiement accept\u00e9s par le restaurant","example":["Carte bancaire","IZLY"]},"region":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"telephone":{"type":"string","description":"Num\u00e9ro de t\u00e9l\u00e9phone du restaurant","example":null},"type_restaurant":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du type de restauration","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du type de restauration","example":"Restaurant"}}},"zone":{"type":"string","description":"Zone du restaurant","example":"Pau"}}},"description":"Liste des restaurants"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Liste des restaurants disponibles dans une r\u00e9gion."}}}},"/v1/regions/{code}":{"get":{"operationId":"get~Regions.getRegion","summary":"D\u00e9tails d'une r\u00e9gion","description":"D\u00e9tails d'une r\u00e9gion en fonction de son code.","tags":["Regions"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID de la r\u00e9gion","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"La r\u00e9gion n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID de la r\u00e9gion doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"D\u00e9tails d'une r\u00e9gion."}}}},"/v1/restaurants/{code}/menu/iframe":{"get":{"operationId":"get~Restaurants.getRestaurantTodayMenuIframe","summary":"Widget Iframe Menu d'un restaurant (Aujourd'hui)","description":"Retourne un widget HTML int\u00e9grable affichant le menu d'un restaurant pour la date d'aujourd'hui.","tags":["Restaurants"],"parameters":[{"name":"theme","schema":{"type":"string"},"description":"Th\u00e8me du widget (light, dark)","required":false,"in":"query"},{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre."},"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"Widget Iframe HTML"}}}},"/v1/restaurants/{code}/info":{"get":{"operationId":"get~Restaurants.getInformations","summary":"Informations d'un restaurant","description":"Informations d'un restaurant en fonction de son code.","tags":["Restaurants"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"ajout":{"type":"string","description":"Date d'ajout du restaurant dans la base de donn\u00e9es","example":"2024-10-19 18:44:31"},"code":{"type":"integer","format":"int32","description":"Code de retour","example":1502},"modifie":{"type":"string","description":"Derni\u00e8re mise \u00e0 jour du restaurant dans la base de donn\u00e9es","example":"2024-10-19 19:44:31"},"nb":{"type":"integer","format":"int32","description":"Nombre de fois que le restaurant a \u00e9t\u00e9 mis \u00e0 jour","example":1}}},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Informations d'un restaurant."}}}},"/v1/restaurants/{code}/iframe":{"get":{"operationId":"get~Restaurants.getRestaurantIframe","summary":"Widget Iframe Informations d'un restaurant","description":"Retourne un widget HTML int\u00e9grable affichant les informations d'un restaurant.","tags":["Restaurants"],"parameters":[{"name":"theme","schema":{"type":"string"},"description":"Th\u00e8me du widget (light, dark)","required":false,"in":"query"},{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre."},"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"Widget Iframe HTML"}}}},"/v1/restaurants/{code}/preview":{"get":{"operationId":"get~Restaurants.getRestaurantPreview","summary":"Image d'un restaurant","description":"Image d'un restaurant en fonction de son code.","tags":["Restaurants"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant ou l'image n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre."},"200":{"content":{"image/png":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary","description":"Une image"}}}}},"description":"Image d'un restaurant."}}}},"/v1/restaurants/{code}/menu/{date}":{"get":{"operationId":"get~Restaurants.getRestaurantMenuFromDate","summary":"Menu d'un restaurant \u00e0 une date donn\u00e9e","description":"Menu d'un restaurant en fonction de son code et d'une date donn\u00e9e.","tags":["Restaurants"],"parameters":[{"name":"date","schema":{"type":"string"},"description":"Date du menu (format: DD-MM-YYYY)","required":true,"in":"path"},{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre et la date doit \u00eatre au format DD-MM-YYYY."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du menu","example":1},"date":{"type":"string","description":"Date du menu","example":"21-10-2024"},"repas":{"type":"array","items":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la cat\u00e9gorie","example":1},"libelle":{"type":"string","description":"Libell\u00e9 de la cat\u00e9gorie","example":"Entr\u00e9es"},"ordre":{"type":"integer","format":"int32","description":"Ordre de la cat\u00e9gorie dans le menu","example":1},"plats":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"},"ordre":{"type":"integer","format":"int32","description":"Ordre du plat dans le menu","example":1}}},"description":"Liste des plats de la cat\u00e9gorie"}}},"description":"Liste des cat\u00e9gories du repas"},"code":{"type":"string","description":"Identifiant du repas","example":1},"type":{"type":"string","description":"Type du repas","example":"matin","enum":["matin","midi","soir"]}}},"description":"Liste des repas du menu"}}},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Menu d'un restaurant."}}}},"/v1/restaurants/{code}/menu/{date}/image":{"get":{"operationId":"get~Restaurants.getRestaurantMenuFromDateImage","summary":"Menu d'un restaurant \u00e0 une date donn\u00e9e sous forme d'image","description":"Menu d'un restaurant en fonction de son code et d'une date donn\u00e9e sous forme d'image.","tags":["Restaurants"],"parameters":[{"name":"color_infos","schema":{"type":"string"},"description":"Couleur personnalis\u00e9e pour les informations (format: #RRGGBB ou #RGB)","required":false,"in":"query"},{"name":"color_title","schema":{"type":"string"},"description":"Couleur personnalis\u00e9e pour les titres (format: #RRGGBB ou #RGB)","required":false,"in":"query"},{"name":"color_content","schema":{"type":"string"},"description":"Couleur personnalis\u00e9e pour le contenu (format: #RRGGBB ou #RGB)","required":false,"in":"query"},{"name":"color_header","schema":{"type":"string"},"description":"Couleur personnalis\u00e9e pour l'en-t\u00eate (format: #RRGGBB ou #RGB)","required":false,"in":"query"},{"name":"theme","schema":{"type":"string"},"description":"Th\u00e8me de l'image (light, purple, dark)","required":false,"in":"query"},{"name":"repas","schema":{"type":"string"},"description":"Repas du menu","required":false,"in":"query"},{"name":"date","schema":{"type":"string"},"description":"Date du menu (format: DD-MM-YYYY)","required":true,"in":"path"},{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre et la date doit \u00eatre au format DD-MM-YYYY."},"200":{"content":{"image/png":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary","description":"Une image"}}}}},"description":"Menu d'un restaurant sous forme d'image."}}}},"/v1/restaurants/{code}/menu/dates":{"get":{"operationId":"get~Restaurants.getRestaurantMenuDates","summary":"Dates des prochains menus disponibles d'un restaurant","description":"Dates des prochains menus disponibles d'un restaurant en fonction de son code.","tags":["Restaurants"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Date"},"description":"Liste des dates"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Dates des prochains menus disponibles"}}}},"/v1/restaurants/{code}/menu/dates/all":{"get":{"operationId":"get~Restaurants.getRestaurantMenuAllDates","summary":"Dates des menus disponibles d'un restaurant","description":"Dates des menus disponibles d'un restaurant en fonction de son code.","tags":["Restaurants"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Date"},"description":"Liste des dates"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Dates des menus disponibles"}}}},"/v1/restaurants/{code}/iframe/custom":{"get":{"operationId":"get~Restaurants.getRestaurantCustomIframe","summary":"Widget Iframe personnalis\u00e9 d'un restaurant","description":"Retourne un widget HTML int\u00e9grable enti\u00e8rement personnalisable via la query string (blocs, th\u00e8me, couleur, police, repas, date, taille).","tags":["Restaurants"],"parameters":[{"name":"lang","schema":{"type":"string"},"description":"Langue (fr, en)","required":false,"in":"query"},{"name":"height","schema":{"type":"integer","format":"int32"},"description":"Hauteur fixe du widget en px (200-1200, d\u00e9faut: 600)","required":false,"in":"query"},{"name":"font","schema":{"type":"string"},"description":"Police (Inter, Roboto, Outfit, Nunito, system)","required":false,"in":"query"},{"name":"color","schema":{"type":"string"},"description":"Couleur d'accent hexad\u00e9cimale sans # (ex: ef4444)","required":false,"in":"query"},{"name":"meals","schema":{"type":"string"},"description":"Repas \u00e0 afficher dans le bloc menu (matin,midi,soir)","required":false,"in":"query"},{"name":"blocks","schema":{"type":"string"},"description":"Blocs \u00e0 afficher, dans l'ordre souhait\u00e9 (header,header_text,region,status,address,menu,hours,contact,payment,access,link)","required":false,"in":"query"},{"name":"date","schema":{"type":"string"},"description":"Date du menu (DD-MM-YYYY, d\u00e9faut : aujourd'hui)","required":false,"in":"query"},{"name":"theme","schema":{"type":"string"},"description":"Th\u00e8me (light, dark)","required":false,"in":"query"},{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Param\u00e8tre invalide : ID non entier, th\u00e8me inconnu, couleur mal form\u00e9e, police non support\u00e9e, langue non support\u00e9e, bloc ou repas invalide, hauteur hors plage, date mal format\u00e9e."},"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"Widget Iframe HTML personnalis\u00e9"}}}},"/v1/restaurants/{code}":{"get":{"operationId":"get~Restaurants.getRestaurant","summary":"D\u00e9tails d'un restaurant","description":"D\u00e9tails d'un restaurant en fonction de son code.","tags":["Restaurants"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"acces":{"type":"string","description":"Informations sur l'acc\u00e8s au restaurant","example":["Bus 2,4, 6, 13"]},"actif":{"type":"boolean","description":"Le restaurant est-il actif ?","example":true},"adresse":{"type":"string","description":"Adresse du restaurant","example":"2 avenue Poplawski \u00e0 PAU"},"code":{"type":"integer","format":"int32","description":"Identifiant du restaurant","example":1},"email":{"type":"string","description":"Adresse email du restaurant","example":null},"horaires":{"type":"array","items":{"type":"string"},"description":"Horaires d'ouverture du restaurant","example":["du lundi au vendredi","SELF : 11h15 - 13h45 | 18h-19h30","BAR : 11h30-14h","SANDWICHERIE : 11h15 - 13h45","L'OASIS (restaurant administratif) : 11h30 - 13h45"]},"image_url":{"type":"string","description":"URL de l'image du restaurant","example":null},"ispmr":{"type":"boolean","description":"Le restaurant est-il accessible aux PMR ?","example":true},"jours_ouvert":{"type":"array","items":{"type":"object","properties":{"jour":{"type":"string","description":"Jours de la semaine","example":"Lundi"},"ouverture":{"type":"object","properties":{"matin":{"type":"boolean","description":"Ouverture le matin","example":true},"midi":{"type":"boolean","description":"Ouverture le midi","example":true},"soir":{"type":"boolean","description":"Ouverture le soir","example":true}}}}},"description":"Jours d'ouverture du restaurant"},"latitude":{"type":"number","format":"float","description":"Latitude du restaurant","example":43.313084},"longitude":{"type":"number","format":"float","description":"Longitude du restaurant","example":-0.367188},"nom":{"type":"string","description":"Nom du restaurant","example":"Resto U' Cap Sud"},"paiement":{"type":"array","items":{"type":"string"},"description":"Moyens de paiement accept\u00e9s par le restaurant","example":["Carte bancaire","IZLY"]},"region":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"telephone":{"type":"string","description":"Num\u00e9ro de t\u00e9l\u00e9phone du restaurant","example":null},"type_restaurant":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du type de restauration","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du type de restauration","example":"Restaurant"}}},"zone":{"type":"string","description":"Zone du restaurant","example":"Pau"}}},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"D\u00e9tails d'un restaurant."}}}},"/v1/restaurants/{code}/menu":{"get":{"operationId":"get~Restaurants.getRestaurantMenu","summary":"Menu d'un restaurant","description":"Menu d'un restaurant en fonction de son code.","tags":["Restaurants"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du menu","example":1},"date":{"type":"string","description":"Date du menu","example":"21-10-2024"},"repas":{"type":"array","items":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la cat\u00e9gorie","example":1},"libelle":{"type":"string","description":"Libell\u00e9 de la cat\u00e9gorie","example":"Entr\u00e9es"},"ordre":{"type":"integer","format":"int32","description":"Ordre de la cat\u00e9gorie dans le menu","example":1},"plats":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"},"ordre":{"type":"integer","format":"int32","description":"Ordre du plat dans le menu","example":1}}},"description":"Liste des plats de la cat\u00e9gorie"}}},"description":"Liste des cat\u00e9gories du repas"},"code":{"type":"string","description":"Identifiant du repas","example":1},"type":{"type":"string","description":"Type du repas","example":"matin","enum":["matin","midi","soir"]}}},"description":"Liste des repas du menu"}}},"description":"Liste des menus"},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"Menu d'un restaurant."}}}},"/v1/restaurants/{code}/menu/{date}/iframe":{"get":{"operationId":"get~Restaurants.getRestaurantMenuIframe","summary":"Widget Iframe Menu d'un restaurant","description":"Retourne un widget HTML int\u00e9grable affichant le menu d'un restaurant pour une date pr\u00e9cise.","tags":["Restaurants"],"parameters":[{"name":"theme","schema":{"type":"string"},"description":"Th\u00e8me du widget (light, dark)","required":false,"in":"query"},{"name":"date","schema":{"type":"string"},"description":"Date du menu","required":true,"in":"path"},{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du restaurant","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le restaurant n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du restaurant doit \u00eatre un nombre et la date au format DD-MM-YYYY."},"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"Widget Iframe HTML"}}}},"/v1/plats/{code}":{"get":{"operationId":"get~Plats.getPlat","summary":"D\u00e9tails d'un plat","description":"D\u00e9tails d'un plat en fonction de son code.","tags":["Plats"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID du plat","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Le plat n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID du plat doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"}}},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"D\u00e9tails d'un plat."}}}},"/v1/taches/{code}":{"get":{"operationId":"get~Taches.getTache","summary":"D\u00e9tails d'une t\u00e2che","description":"D\u00e9tails d'une t\u00e2che en fonction de son code.","tags":["Taches"],"parameters":[{"name":"code","schema":{"type":"integer","format":"int32"},"description":"ID de la t\u00e2che","required":true,"in":"path"}],"responses":{"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"Vous avez envoy\u00e9 trop de requ\u00eates. Veuillez r\u00e9essayer plus tard."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La ressource demand\u00e9e n'existe pas."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"La t\u00e2che n'existe pas."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message de retour","example":"La requ\u00eate est incorrecte."},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":false}}}}},"description":"L'ID de la t\u00e2che doit \u00eatre un nombre."},"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"debut":{"type":"string","description":"Date de d\u00e9but de la t\u00e2che","example":"21-10-2024 00:00:00"},"debut_categories":{"type":"integer","format":"int32","description":"Nombre de cat\u00e9gories r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_compositions":{"type":"integer","format":"int32","description":"Nombre de compositions r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_menus":{"type":"integer","format":"int32","description":"Nombre de menus r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_plats":{"type":"integer","format":"int32","description":"Nombre de plats r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_regions":{"type":"integer","format":"int32","description":"Nombre de r\u00e9gions r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_repas":{"type":"integer","format":"int32","description":"Nombre de repas r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_restaurants":{"type":"integer","format":"int32","description":"Nombre de restaurants r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_types_restaurants":{"type":"integer","format":"int32","description":"Nombre de types de restaurants r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"fin":{"type":"string","description":"Date de fin de la t\u00e2che","example":"21-10-2024 00:00:00"},"fin_categories":{"type":"integer","format":"int32","description":"Nombre de cat\u00e9gories r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_compositions":{"type":"integer","format":"int32","description":"Nombre de compositions r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_menus":{"type":"integer","format":"int32","description":"Nombre de menus r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_plats":{"type":"integer","format":"int32","description":"Nombre de plats r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_regions":{"type":"integer","format":"int32","description":"Nombre de r\u00e9gions r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_repas":{"type":"integer","format":"int32","description":"Nombre de repas r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_restaurants":{"type":"integer","format":"int32","description":"Nombre de restaurants r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_types_restaurants":{"type":"integer","format":"int32","description":"Nombre de types de restaurants r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"id":{"type":"string","description":"Identifiant de la t\u00e2che","example":1},"requetes":{"type":"integer","format":"int32","description":"Nombre de requ\u00eates effectu\u00e9es","example":900},"restaurants":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"format":{"type":"string"},"nullable":{"type":"boolean"},"required":{"type":"boolean"},"default":{"type":"object"},"example":{"type":"object"},"oneOf":{"type":"array","items":{"type":"object"}},"anyOf":{"type":"array","items":{"type":"object"}},"allOf":{"type":"array","items":{"type":"object"}},"additionalProperties":{"type":"object","additionalProperties":{"type":"string"}},"multipleOf":{"type":"integer","format":"int32"},"maximum":{"type":"integer","format":"int32"},"exclusiveMaximum":{"type":"boolean"},"minimum":{"type":"integer","format":"int32"},"exclusiveMinimum":{"type":"boolean"},"maxLength":{"type":"integer","format":"int32"},"minLength":{"type":"integer","format":"int32"},"pattern":{"type":"string"},"enum":{"oneOf":[{"type":"array","items":{}},{"type":"string","default":"string","enum":[]}]}}},"description":"Identifiants des restaurants analys\u00e9s","example":[1,2,3]}}},"success":{"type":"boolean","description":"Statut de la requ\u00eate","example":true}}}}},"description":"D\u00e9tails d'une t\u00e2che."}}}}},"tags":[{"name":"Regions"},{"name":"Restaurants"},{"name":"Service"},{"name":"Plats"},{"name":"Taches"},{"name":"Interne"}],"servers":[{"url":"https://api.croustillant.menu/","description":"Serveur de production","variables":{}}],"security":[],"components":{"schemas":{"Region":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"TypeRestaurant":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du type de restauration","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du type de restauration","example":"Restaurant"}}},"Jours":{"type":"object","properties":{"jour":{"type":"string","description":"Jours de la semaine","example":"Lundi"},"ouverture":{"type":"object","properties":{"matin":{"type":"boolean","description":"Ouverture le matin","example":true},"midi":{"type":"boolean","description":"Ouverture le midi","example":true},"soir":{"type":"boolean","description":"Ouverture le soir","example":true}}}}},"Restaurant":{"type":"object","properties":{"acces":{"type":"string","description":"Informations sur l'acc\u00e8s au restaurant","example":["Bus 2,4, 6, 13"]},"actif":{"type":"boolean","description":"Le restaurant est-il actif ?","example":true},"adresse":{"type":"string","description":"Adresse du restaurant","example":"2 avenue Poplawski \u00e0 PAU"},"code":{"type":"integer","format":"int32","description":"Identifiant du restaurant","example":1},"email":{"type":"string","description":"Adresse email du restaurant","example":null},"horaires":{"type":"array","items":{"type":"string"},"description":"Horaires d'ouverture du restaurant","example":["du lundi au vendredi","SELF : 11h15 - 13h45 | 18h-19h30","BAR : 11h30-14h","SANDWICHERIE : 11h15 - 13h45","L'OASIS (restaurant administratif) : 11h30 - 13h45"]},"image_url":{"type":"string","description":"URL de l'image du restaurant","example":null},"ispmr":{"type":"boolean","description":"Le restaurant est-il accessible aux PMR ?","example":true},"jours_ouvert":{"type":"array","items":{"type":"object","properties":{"jour":{"type":"string","description":"Jours de la semaine","example":"Lundi"},"ouverture":{"type":"object","properties":{"matin":{"type":"boolean","description":"Ouverture le matin","example":true},"midi":{"type":"boolean","description":"Ouverture le midi","example":true},"soir":{"type":"boolean","description":"Ouverture le soir","example":true}}}}},"description":"Jours d'ouverture du restaurant"},"latitude":{"type":"number","format":"float","description":"Latitude du restaurant","example":43.313084},"longitude":{"type":"number","format":"float","description":"Longitude du restaurant","example":-0.367188},"nom":{"type":"string","description":"Nom du restaurant","example":"Resto U' Cap Sud"},"paiement":{"type":"array","items":{"type":"string"},"description":"Moyens de paiement accept\u00e9s par le restaurant","example":["Carte bancaire","IZLY"]},"region":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"telephone":{"type":"string","description":"Num\u00e9ro de t\u00e9l\u00e9phone du restaurant","example":null},"type_restaurant":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du type de restauration","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du type de restauration","example":"Restaurant"}}},"zone":{"type":"string","description":"Zone du restaurant","example":"Pau"}}},"RestaurantStatus":{"type":"object","properties":{"actif":{"type":"boolean","description":"Le restaurant est-il actif ?","example":true},"code":{"type":"integer","format":"int32","description":"Identifiant du restaurant","example":1},"nom":{"type":"string","description":"Nom du restaurant","example":"Resto U' Cap Sud"},"ouvert":{"type":"boolean","description":"Le restaurant est-il ouvert ?","example":true},"region":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la r\u00e9gion","example":23},"libelle":{"type":"string","description":"Libell\u00e9 de la r\u00e9gion","example":"Reims"}}},"type_restaurant":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du type de restauration","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du type de restauration","example":"Restaurant"}}}}},"RestaurantStatusMinimal":{"type":"object","properties":{"actif":{"type":"boolean","description":"Le restaurant est-il actif ?","example":true},"code":{"type":"integer","format":"int32","description":"Identifiant du restaurant","example":1},"ouvert":{"type":"boolean","description":"Le restaurant est-il ouvert ?","example":true}}},"Plat":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"}}},"PlatTrie":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"},"ordre":{"type":"integer","format":"int32","description":"Ordre du plat dans le menu","example":1}}},"Categorie":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la cat\u00e9gorie","example":1},"libelle":{"type":"string","description":"Libell\u00e9 de la cat\u00e9gorie","example":"Entr\u00e9es"},"plats":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"}}},"description":"Liste des plats de la cat\u00e9gorie"}}},"CategorieTriee":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la cat\u00e9gorie","example":1},"libelle":{"type":"string","description":"Libell\u00e9 de la cat\u00e9gorie","example":"Entr\u00e9es"},"ordre":{"type":"integer","format":"int32","description":"Ordre de la cat\u00e9gorie dans le menu","example":1},"plats":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"},"ordre":{"type":"integer","format":"int32","description":"Ordre du plat dans le menu","example":1}}},"description":"Liste des plats de la cat\u00e9gorie"}}},"Repas":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la cat\u00e9gorie","example":1},"libelle":{"type":"string","description":"Libell\u00e9 de la cat\u00e9gorie","example":"Entr\u00e9es"},"ordre":{"type":"integer","format":"int32","description":"Ordre de la cat\u00e9gorie dans le menu","example":1},"plats":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"},"ordre":{"type":"integer","format":"int32","description":"Ordre du plat dans le menu","example":1}}},"description":"Liste des plats de la cat\u00e9gorie"}}},"description":"Liste des cat\u00e9gories du repas"},"code":{"type":"string","description":"Identifiant du repas","example":1},"type":{"type":"string","description":"Type du repas","example":"matin","enum":["matin","midi","soir"]}}},"Menu":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du menu","example":1},"date":{"type":"string","description":"Date du menu","example":"21-10-2024"},"repas":{"type":"array","items":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant de la cat\u00e9gorie","example":1},"libelle":{"type":"string","description":"Libell\u00e9 de la cat\u00e9gorie","example":"Entr\u00e9es"},"ordre":{"type":"integer","format":"int32","description":"Ordre de la cat\u00e9gorie dans le menu","example":1},"plats":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du plat","example":1},"libelle":{"type":"string","description":"Libell\u00e9 du plat","example":"Dinde proven\u00e7al"},"ordre":{"type":"integer","format":"int32","description":"Ordre du plat dans le menu","example":1}}},"description":"Liste des plats de la cat\u00e9gorie"}}},"description":"Liste des cat\u00e9gories du repas"},"code":{"type":"string","description":"Identifiant du repas","example":1},"type":{"type":"string","description":"Type du repas","example":"matin","enum":["matin","midi","soir"]}}},"description":"Liste des repas du menu"}}},"Date":{"type":"object","properties":{"code":{"type":"string","description":"Identifiant du menu","example":1},"date":{"type":"string","description":"Date du menu","example":"21-10-2024"}}},"Tache":{"type":"object","properties":{"debut":{"type":"string","description":"Date de d\u00e9but de la t\u00e2che","example":"21-10-2024 00:00:00"},"debut_categories":{"type":"integer","format":"int32","description":"Nombre de cat\u00e9gories r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_compositions":{"type":"integer","format":"int32","description":"Nombre de compositions r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_menus":{"type":"integer","format":"int32","description":"Nombre de menus r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_plats":{"type":"integer","format":"int32","description":"Nombre de plats r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_regions":{"type":"integer","format":"int32","description":"Nombre de r\u00e9gions r\u00e9cup\u00e9r\u00e9es au d\u00e9but de la t\u00e2che","example":100},"debut_repas":{"type":"integer","format":"int32","description":"Nombre de repas r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_restaurants":{"type":"integer","format":"int32","description":"Nombre de restaurants r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"debut_types_restaurants":{"type":"integer","format":"int32","description":"Nombre de types de restaurants r\u00e9cup\u00e9r\u00e9s au d\u00e9but de la t\u00e2che","example":100},"fin":{"type":"string","description":"Date de fin de la t\u00e2che","example":"21-10-2024 00:00:00"},"fin_categories":{"type":"integer","format":"int32","description":"Nombre de cat\u00e9gories r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_compositions":{"type":"integer","format":"int32","description":"Nombre de compositions r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_menus":{"type":"integer","format":"int32","description":"Nombre de menus r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_plats":{"type":"integer","format":"int32","description":"Nombre de plats r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_regions":{"type":"integer","format":"int32","description":"Nombre de r\u00e9gions r\u00e9cup\u00e9r\u00e9es \u00e0 la fin de la t\u00e2che","example":100},"fin_repas":{"type":"integer","format":"int32","description":"Nombre de repas r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_restaurants":{"type":"integer","format":"int32","description":"Nombre de restaurants r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"fin_types_restaurants":{"type":"integer","format":"int32","description":"Nombre de types de restaurants r\u00e9cup\u00e9r\u00e9s \u00e0 la fin de la t\u00e2che","example":100},"id":{"type":"string","description":"Identifiant de la t\u00e2che","example":1},"requetes":{"type":"integer","format":"int32","description":"Nombre de requ\u00eates effectu\u00e9es","example":900}}},"ChangeLog":{"type":"object","properties":{"CROUStillant":{"type":"array","items":{"type":"object","properties":{"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Nom du contributeur","example":"Paul Bayfield"},"role":{"type":"object","description":"R\u00f4le du contributeur","properties":{"fr":{"type":"string","description":"R\u00f4le du contributeur en fran\u00e7ais","example":"Fondateur du projet et d\u00e9veloppeur principal"},"en":{"type":"string","description":"R\u00f4le du contributeur en anglais","example":"Project founder and lead developer"}}}}},"description":"Liste des contributeurs"},"date":{"type":"string","description":"Date de la version","example":"2024-12-30T11:57:00Z"},"en":{"type":"object","description":"Informations en anglais","properties":{"title":{"type":"string","description":"Titre de la version","example":"CROUStillant Web"},"shortDescription":{"type":"string","description":"Description courte de la version","example":"CROUStillant Web is a web version of CROUStillant, accessible from any browser."},"fullDescription":{"type":"string","description":"Description compl\u00e8te de la version","example":"CROUStillant Web is a web version of CROUStillant, accessible from any browser. This version allows you to view the menus for the week, the day, and the evening of University Restaurants in France and overseas."}}},"fr":{"type":"object","description":"Informations en fran\u00e7ais","properties":{"title":{"type":"string","description":"Titre de la version","example":"CROUStillant Web"},"shortDescription":{"type":"string","description":"Description courte de la version","example":"CROUStillant Web est une version web de CROUStillant, accessible depuis n'importe quel navigateur."},"fullDescription":{"type":"string","description":"Description compl\u00e8te de la version","example":"CROUStillant Web est une version web de CROUStillant, accessible depuis n'importe quel navigateur. Cette version permet de consulter les menus de la semaine, de la journ\u00e9e, et de la soir\u00e9e des Restaurants Universitaires de France et d'outre-mer."}}},"version":{"type":"string","description":"Version de l'API","example":"v1.0.0"}}},"description":"Changelog des services de CROUStillant"}}}}}}