Aller au contenu principal

Menus

Consultation des menus du jour et de la semaine.

Base URL : /api/v1/menus


GET /menus/by-date​

Retourne le menu d'une date donnée avec ses produits et sa disponibilité de réservation.

Permissions : menu.read ou menu.manage

Paramètres de query​

ParamTypeRequisDescription
datedateOuiDate du menu (YYYY-MM-DD)
site_iduuidNonFiltrer par site

Réponse (200)​

{
"menu": {
"id": "uuid",
"date": "2025-06-21",
"name": "Menu du 21 juin",
"site_id": "uuid"
},
"products": [
{
"id": "uuid",
"name": "Riz au poisson",
"code": "RZP",
"description": "Riz, poisson grillé, légumes",
"meal_type": "Fish",
"price_cents": 1200,
"stock_quantity": 50,
"is_active": true,
"image_path": null,
"menu_product_id": "uuid",
"menu_quantity": 20,
"menu_unit_price_cents": 1200,
"group_id": null,
"group_name": null
}
],
"group": ["Entrées", "Plats", "Desserts"],
"reservation": {
"date": "2025-06-21",
"can_reserve": true,
"reason": "ok",
"has_menu": true,
"menu_id": "uuid",
"deadline": {},
"products": []
}
}
  • group est une liste de noms de groupes (chaînes).
  • reservation est la disponibilité de la date (voir Disponibilité).

Erreurs​

CodeDescription
404"Aucun menu pour cette date"

GET /menus/week​

Retourne les menus sur une fenêtre de 7 jours.

Permissions : menu.read ou menu.manage

Paramètres de query​

ParamTypeRequisDescription
startdateOuiPremier jour (ex: lundi)
site_iduuidNonFiltrer par site

Réponse (200)​

{
"week_start": "2025-06-16",
"days": [
{
"date": "2025-06-16",
"menus": [
{
"id": "uuid",
"name": "Menu du 16 juin",
"date": "2025-06-16",
"site_id": "uuid",
"products": [ ],
"group": ["Plats"]
}
],
"reservation": null
}
],
"total_menus": 5,
"currency": "XOF"
}
remarque

La réponse contient toujours exactement 7 jours, du start à start + 6. Les jours sans menu ont "menus": []. Plusieurs menus par jour sont possibles si site_id est omis.


Administration des menus​

Les opérations de création/modification des menus sont documentées dans Administration — Menus.