{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/RegisterChangeRequest",
  "title": "RegisterChangeRequest",
  "required": [
    "requestId",
    "reason",
    "discountValue",
    "incrementValue"
  ],
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "description": "Request identification of the change. Only the first change made with each `requestId` will be effective on a given order. Use different IDs for different changes to the same order.",
      "example": "change-request-0123"
    },
    "reason": {
      "type": "string",
      "description": "Reason for order change. This may be shown to the shopper in the UI or transactional emails.",
      "example": "Stock shortage"
    },
    "discountValue": {
      "type": "integer",
      "description": "This field can be used to apply a discount to the total value of the order. Value in cents.",
      "example": 100
    },
    "incrementValue": {
      "type": "integer",
      "description": "This field can be used to increment the total value of the order. Value in cents.",
      "example": 100
    },
    "itemsRemoved": {
      "type": "array",
      "description": "List of items that should be removed from the order.",
      "items": {
        "type": "object",
        "description": "Removed items' details.",
        "required": [
          "id",
          "price",
          "quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Product ID of the item.",
            "example": "0"
          },
          "price": {
            "type": "integer",
            "description": "Price of the item in cents.",
            "example": 2499
          },
          "quantity": {
            "type": "integer",
            "description": "Amount of items to be removed.",
            "example": 1
          }
        }
      }
    },
    "itemsAdded": {
      "type": "array",
      "description": "List of items that should be added to the order.",
      "items": {
        "type": "object",
        "description": "Added items' details.",
        "required": [
          "id",
          "price",
          "quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Product ID of the item.",
            "example": "0"
          },
          "price": {
            "type": "integer",
            "description": "Price of the item in cents.",
            "example": 2499
          },
          "quantity": {
            "type": "integer",
            "description": "Amount of items to be added.",
            "example": 1
          }
        }
      }
    }
  }
}