changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "additionalProperties": false,
+ "properties": {
+ "confirmation": {
+ "additionalProperties": false,
+ "properties": {
+ "channel": {
+ "description": "Where the code went: 'email', 'sms', or 'none' if delivery was unavailable",
+ "type": "string"
+ },
+ "delivered": {
+ "description": "False means the hold exists but no code reached the customer — the booking cannot be confirmed until one does",
+ "type": "boolean"
+ },
+ "method": {
+ "description": "Always 'otp' today",
+ "type": "string"
+ }
+ },
+ "required": [
+ "method",
+ "channel",
+ "delivered"
+ ],
+ "type": "object"
+ },
+ "expires_at": {
+ "description": "ISO-8601. When this hold lapses if the code is not confirmed",
+ "type": "string"
+ },
+ "idempotent_replay": {
+ "description": "Present and true when this idempotency_key already had a reservation; no new code was sent",
+ "type": "boolean"
+ },
+ "reservation_id": {
+ "format": "uuid",
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
+ "type": "string"
+ },
+ "status": {
+ "description": "Reservation state — 'pending_offer' on a fresh hold; a replay returns the existing row's state",
+ "type": "string"
+ }
+ },
+ "required": [
+ "reservation_id",
+ "status",
+ "expires_at",
+ "confirmation"
+ ],
+ "type": "object"
+}