{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:MerchantReturnPolicySeasonalOverride",
  "title": "MerchantReturnPolicySeasonalOverride",
  "description": "A seasonal override of a return policy, for example used for holidays.",
  "type": "object",
  "allOf": [
    {
      "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.",
      "$ref": "schema:Intangible"
    }
  ],
  "properties": {
    "endDate": {
      "description": "The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).",
      "anyOf": [
        { "type": "string", "format": "date" },
        { "type": "string", "format": "date-time" }
      ]
    },
    "merchantReturnDays": {
      "description": "Specifies either a fixed return date or the number of days (from the delivery date) that a product can be returned. Used when the [[returnPolicyCategory]] property is specified as [[MerchantReturnFiniteReturnWindow]].",
      "oneOf": [
        {
          "anyOf": [
            { "type": "integer" },
            { "type": "string", "format": "date" },
            { "type": "string", "format": "date-time" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "integer" },
              { "type": "string", "format": "date" },
              { "type": "string", "format": "date-time" }
            ]
          }
        }
      ]
    },
    "refundType": {
      "description": "A refund type, from an enumerated list.",
      "oneOf": [
        { "$ref": "schema:RefundTypeEnumeration" },
        { "type": "array", "items": { "$ref": "schema:RefundTypeEnumeration" } }
      ]
    },
    "restockingFee": {
      "description": "Use [[MonetaryAmount]] to specify a fixed restocking fee for product returns, or use [[Number]] to specify a percentage of the product price paid by the customer.",
      "oneOf": [
        {
          "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }]
          }
        }
      ]
    },
    "returnFees": {
      "description": "The type of return fees for purchased products (for any return reason).",
      "$ref": "schema:ReturnFeesEnumeration"
    },
    "returnMethod": {
      "description": "The type of return method offered, specified from an enumeration.",
      "$ref": "schema:ReturnMethodEnumeration"
    },
    "returnPolicyCategory": {
      "description": "Specifies an applicable return policy (from an enumeration).",
      "oneOf": [
        { "$ref": "schema:MerchantReturnEnumeration" },
        {
          "type": "array",
          "items": { "$ref": "schema:MerchantReturnEnumeration" }
        }
      ]
    },
    "returnShippingFeesAmount": {
      "description": "Amount of shipping costs for product returns (for any reason). Applicable when property [[returnFees]] equals [[ReturnShippingFees]].",
      "oneOf": [
        { "$ref": "schema:MonetaryAmount" },
        { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } }
      ]
    },
    "startDate": {
      "description": "The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).",
      "anyOf": [
        { "type": "string", "format": "date" },
        { "type": "string", "format": "date-time" }
      ]
    }
  }
}
