{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/unece/UneceTradePrice",
	"title": "UneceTradePrice",
	"description": "A sum of money for which something is or may be bought or sold for trade purposes.",
	"type": "object",
	"properties": {
		"@context": {
			"$ref": "https://schema.twindev.org/unece/UneceContextType",
			"description": "JSON-LD Context."
		},
		"type": {
			"const": "TradePrice",
			"description": "JSON-LD Type."
		},
		"applicableCustomerClass": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceCustomerClass"
			},
			"description": "An applicable customer class for this trade price."
		},
		"applicableSpecifiedNote": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedNote"
			},
			"description": "A specified note applicable to this trade price."
		},
		"appliedAllowanceCharge": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradeAllowanceCharge"
			},
			"description": "An allowance or charge applied to the trade price."
		},
		"associatedDocument": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDocument"
			},
			"description": "An associated document referenced for this trade price."
		},
		"basisDateTime": {
			"type": "string",
			"description": "The date, time, date time, or other date time value used as the basis for this trade price.",
			"format": "date-time"
		},
		"basisQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The quantity on which the trade price is based."
		},
		"bracketTypeCode": {
			"type": "string",
			"description": "The code specifying the type of bracket for this trade price."
		},
		"calculationPercent": {
			"type": "string",
			"description": "The calculation percentage for this trade price."
		},
		"cancellationPercent": {
			"type": "string",
			"description": "The cancellation percentage for this trade price."
		},
		"categoryTypeCode": {
			"type": "string",
			"description": "The code specifying the type of category, such as refund or service charge, for this trade price."
		},
		"changeReason": {
			"type": "string",
			"description": "A reason, expressed as text, for a change of this trade price."
		},
		"chargeAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value of the trade price charge."
		},
		"comparisonPrice": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceReferencePrice"
			},
			"description": "A price that provides a comparison with this trade price."
		},
		"customerServicePointQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of customer service points for this trade price."
		},
		"dayQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of days related to this trade price."
		},
		"deliveryLocation": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradeLocation"
			},
			"description": "A delivery location for this trade price."
		},
		"description": {
			"type": "string",
			"description": "A textual description of this trade price."
		},
		"determinationCode": {
			"type": "string",
			"description": "The code specifying the determination of this trade price."
		},
		"document": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDocument"
			},
			"description": "A document referenced for this trade price."
		},
		"expiryDateTime": {
			"type": "string",
			"description": "The expiry date, time, date time, or other date time value for this trade price.",
			"format": "date-time"
		},
		"grandTotalChargeAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value of the grand total charge of this trade price."
		},
		"includedTax": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradeTax"
			},
			"description": "A tax included in this trade price."
		},
		"information": {
			"type": "string",
			"description": "Information, expressed as text, for this trade price."
		},
		"maximumChargeAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value that is the maximum charge in a range of trade prices."
		},
		"maximumQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The maximum quantity in a range for which the trade price applies."
		},
		"minimumChargeAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value that is the minimum charge in a range of trade prices."
		},
		"minimumQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The minimum quantity in a range for which this trade price applies."
		},
		"multipleReasonIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not multiple reasons affect this trade price."
		},
		"netPriceIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not the trade price is the net price."
		},
		"operationalApplicablePeriod": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedPeriod"
			},
			"description": "An operational period applicable for this trade price."
		},
		"orderUnitConversionFactorNumeric": {
			"type": "string",
			"description": "The value used as the factor to convert the order unit into the price unit for this trade price."
		},
		"priceType": {
			"type": "string",
			"description": "A type, expressed as text, for this trade price."
		},
		"priceTypeCode": {
			"$ref": "https://schema.twindev.org/unece/UnecePriceTypeCodeList",
			"description": "The code specifying the type of trade price."
		},
		"reasonCode": {
			"type": "string",
			"description": "A code specifying a reason for this trade price."
		},
		"repackagingChargeAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value of a repackaging charge for this trade price."
		},
		"repairChargeAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value of a repair charge for this trade price."
		},
		"seasonalApplicablePeriod": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedPeriod"
			},
			"description": "A seasonal period applicable for this trade price."
		},
		"seasonalRankCode": {
			"type": "string",
			"description": "The code specifying the seasonal rank of this trade price."
		},
		"specifiedPaymentTradeSettlement": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UnecePaymentTradeSettlement"
			},
			"description": "A payment trade settlement specified for this trade price."
		},
		"totalChargeAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value of the total charge of this trade price."
		},
		"tradeComparisonPrice": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceReferencePrice"
			},
			"description": "A price that provides a trade comparison with this trade price."
		},
		"tradePriceBracketTypeCode": {
			"type": "string",
			"description": "The code specifying the type of bracket for this trade price."
		},
		"tradePriceCategoryTypeCode": {
			"type": "string",
			"description": "The code specifying the type of category, such as refund or service charge, for this trade price."
		},
		"unitAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value of the unit of this trade price."
		},
		"validityPeriod": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedPeriod"
			},
			"description": "A specified period for which this trade price is valid."
		}
	},
	"required": ["type"]
}
