{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/CreateUpdateCarrierDeliveryWindowsRequest",
  "title": "Create/UpdateCarrier(DeliveryWindows)Request",
  "required": [
    "id",
    "name",
    "slaType",
    "factorCubicWeight",
    "minimunCubicWeight",
    "numberOfItemsPerShipment",
    "modals",
    "onlyItemsWithDefinedModal",
    "maxDimension",
    "scheduledDelivery",
    "maxRangeDelivery",
    "dayOfWeekForDelivery",
    "deliveryOnWeekends",
    "carrierSchedule"
  ],
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "slaType": {
      "type": "string"
    },
    "factorCubicWeight": {
      "type": "string",
      "nullable": true
    },
    "minimunCubicWeight": {
      "type": "string",
      "nullable": true
    },
    "numberOfItemsPerShipment": {
      "type": "string",
      "nullable": true
    },
    "modals": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": ""
    },
    "onlyItemsWithDefinedModal": {
      "type": "boolean"
    },
    "maxDimension": {
      "title": "MaxDimension1",
      "required": [
        "maxSumDimension",
        "height",
        "length"
      ],
      "type": "object",
      "properties": {
        "maxSumDimension": {
          "type": "string",
          "nullable": true
        },
        "height": {
          "type": "string",
          "nullable": true
        },
        "length": {
          "type": "string",
          "nullable": true
        }
      },
      "example": {
        "maxSumDimension": null,
        "height": null,
        "length": null
      }
    },
    "scheduledDelivery": {
      "type": "boolean"
    },
    "maxRangeDelivery": {
      "type": "integer",
      "format": "int32"
    },
    "dayOfWeekForDelivery": {
      "type": "array",
      "description": "Select the chosen days for delivery. Values for each day of the week are: 0 = sunday, 1 = monday, 2 = tuesday, 3 = wednesday, 4 = thursday, 5 = friday, 6 = saturday. Make sure to add the available hours for the chosen days, following the example.",
      "items": {
        "type": "object",
        "required": [
          "dayOfWeek",
          "deliveryRanges"
        ],
        "properties": {
          "dayOfWeek": {
            "type": "integer",
            "description": "Day of the week, from `0` (sunday) to `6` (saturday).",
            "example": 2
          },
          "deliveryRanges": {
            "type": "array",
            "description": "Reservation windows for scheduled delivery.",
            "items": {
              "type": "object",
              "required": [
                "startTime",
                "endTime",
                "listPrice"
              ],
              "properties": {
                "startTime": {
                  "type": "string",
                  "title": "startTime",
                  "description": "Start time for day of the week.",
                  "example": "11:00:00"
                },
                "endTime": {
                  "type": "string",
                  "description": "End time for day of the week.",
                  "example": "12:30:00"
                },
                "listPrice": {
                  "type": "number",
                  "description": "List price for day of the week.",
                  "example": 0
                },
                "deliveryCapacity": {
                  "type": "array",
                  "description": "Sets maximum delivery capacity for a given reservation window for scheduled delivery.",
                  "items": {
                    "type": "object",
                    "example": {
                      "capacityType": "ORDERS_QUANTITY",
                      "maxValue": 55
                    },
                    "required": [
                      "capacityType",
                      "maxValue"
                    ],
                    "properties": {
                      "capacityType": {
                        "type": "string",
                        "description": "Defines how the delivery capacity is measured for this reservation window, by maximum number of orders (`\"ORDERS_QUANTITY\"`) or SKUs (`\"SKUS_QUANTITY\"`).",
                        "example": "ORDERS_QUANTITY"
                      },
                      "maxValue": {
                        "type": "number",
                        "description": "Maximum number of orders or SKUs that the store is capable of fulfilling.",
                        "example": 0
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "deliveryOnWeekends": {
      "type": "boolean"
    },
    "carrierSchedule": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": ""
    }
  },
  "example": {
    "id": "11cc4b5",
    "name": "Entrega Agendada",
    "slaType": "Entrega Agendada",
    "factorCubicWeight": null,
    "minimunCubicWeight": null,
    "numberOfItemsPerShipment": null,
    "modals": [],
    "onlyItemsWithDefinedModal": false,
    "maxDimension": {
      "maxSumDimension": null,
      "height": null,
      "length": null
    },
    "scheduledDelivery": true,
    "maxRangeDelivery": 7,
    "dayOfWeekForDelivery": [
      {
        "dayOfWeek": 0,
        "deliveryRanges": [
          {
            "startTime": "08:00:00",
            "endTime": "12:00:00",
            "listPrice": 10
          },
          {
            "startTime": "12:01:00",
            "endTime": "18:00:00",
            "listPrice": 10
          }
        ]
      },
      {
        "dayOfWeek": 1,
        "deliveryRanges": [
          {
            "startTime": "08:00:00",
            "endTime": "12:00:00",
            "listPrice": 10
          },
          {
            "startTime": "12:01:00",
            "endTime": "18:00:00",
            "listPrice": 10
          }
        ]
      },
      {
        "dayOfWeek": 2,
        "deliveryRanges": [
          {
            "startTime": "08:00:00",
            "endTime": "12:00:00",
            "listPrice": 10
          },
          {
            "startTime": "12:01:00",
            "endTime": "18:00:00",
            "listPrice": 10
          }
        ]
      },
      {
        "dayOfWeek": 3,
        "deliveryRanges": [
          {
            "startTime": "08:00:00",
            "endTime": "12:00:00",
            "listPrice": 10
          },
          {
            "startTime": "12:01:00",
            "endTime": "18:00:00",
            "listPrice": 10
          }
        ]
      },
      {
        "dayOfWeek": 4,
        "deliveryRanges": [
          {
            "startTime": "08:00:00",
            "endTime": "12:00:00",
            "listPrice": 10
          },
          {
            "startTime": "12:01:00",
            "endTime": "18:00:00",
            "listPrice": 10
          }
        ]
      },
      {
        "dayOfWeek": 5,
        "deliveryRanges": [
          {
            "startTime": "08:00:00",
            "endTime": "12:00:00",
            "listPrice": 10
          },
          {
            "startTime": "12:01:00",
            "endTime": "18:00:00",
            "listPrice": 10
          }
        ]
      },
      {
        "dayOfWeek": 6,
        "deliveryRanges": [
          {
            "startTime": "08:00:00",
            "endTime": "12:00:00",
            "listPrice": 10
          },
          {
            "startTime": "12:01:00",
            "endTime": "18:00:00",
            "listPrice": 10
          }
        ]
      }
    ],
    "deliveryOnWeekends": false,
    "carrierSchedule": []
  }
}