{
  "_comment": "Revel inbound 'order.finalized' webhook. Adapter at scripts/adapters/revel/order_status_update.js reads only orderInfo.{id, dining_option, closed, updated_date, created_date}; everything else is ignored in V1. Revel does NOT need polling and there are no ACCEPTED/IN_PROGRESS/READY/DRIVER_PICKED_UP signals — only this single terminal event.",

  "request": {
    "method": "POST",
    "url": "https://{tenant}.sgp.samba-technologies.xyz/inbound/revel/order_finalized",
    "headers": {
      "Content-Type": "application/json",
      "X-Revel-Event-Type": "order.finalized"
    }
  },

  "payload_completed_cata_order": {
    "_comment": "Closed pickup order with CATA dining option configured on the outlet. Adapter emits status=COMPLETED.",
    "event": "order.finalized",
    "orderInfo": {
      "id": 32759,
      "dining_option": 3,
      "closed": true,
      "updated_date": "2026-04-29T14:59:40+08:00",
      "created_date": "2026-04-29T14:50:00+08:00",
      "establishment": "/enterprise/Establishment/456/"
    }
  },

  "payload_skipped_non_cata_dining_option": {
    "_comment": "Same establishment, but a walk-in dine-in order (dining_option=5 isn't in the outlet's CATA set). Adapter emits skip:true.",
    "event": "order.finalized",
    "orderInfo": {
      "id": 32760,
      "dining_option": 5,
      "closed": true,
      "updated_date": "2026-04-29T15:02:11+08:00",
      "created_date": "2026-04-29T15:00:00+08:00",
      "establishment": "/enterprise/Establishment/456/"
    }
  },

  "payload_skipped_open_order_defensive": {
    "_comment": "Defensive — Revel firing order.finalized with closed=false shouldn't happen in practice. Adapter still emits skip:true.",
    "event": "order.finalized",
    "orderInfo": {
      "id": 32761,
      "dining_option": 3,
      "closed": false,
      "updated_date": "2026-04-29T15:05:00+08:00"
    }
  },

  "_status_mapping": {
    "_comment": "Single inbound condition → single status. No 1..6 status enum; Revel does not expose intermediate states via webhooks.",
    "order.finalized + closed=true + dining_option in CATA set": "COMPLETED",
    "order.finalized + dining_option NOT in CATA set":         "{ skip: true, reason: 'non-CATA dining option N' }",
    "order.finalized + closed=false (defensive)":              "{ skip: true, reason: 'order N not closed yet (closed=false)' }",
    "orderInfo missing or id empty":                           "Adapter THROWS — Revel retries via the runtime's 5xx response"
  }
}
