Files
elwig/Elwig/Resources/Schemas/PaymentVariantData.json

112 lines
3.1 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["mode"],
"anyOf": [{
"required": ["version", "payment", "curves"],
"additionalProperties": false,
"properties": {
"mode": {"enum": ["elwig"]},
"version": {"enum": [1]},
"consider_delivery_modifiers": {"type": "boolean"},
"consider_contract_penalties": {"type": "boolean"},
"consider_total_penalty": {"type": "boolean"},
"consider_auto_business_shares": {"type": "boolean"},
"net_weight_modifier": {"type": "number"},
"gross_weight_modifier": {"type": "number"},
"payment": {"$ref": "#/definitions/payment_1"},
"quality": {"$ref": "#/definitions/quality_1"},
"curves": {
"type": "array",
"items": {"$ref": "#/definitions/curve"}
}
}
}, {
"required": ["AuszahlungSorten", "Kurven"],
"properties": {
"mode": {"enum": ["wgmaster"]},
"Rebelzuschlag": {"type": "number"},
"AuszahlungSorten": {"$ref": "#/definitions/payment_1"},
"AuszahlungSortenQualitätsstufe": {"$ref": "#/definitions/quality_1"},
"Kurven": {
"type": "array",
"items": {"$ref": "#/definitions/curve"}
}
}
}],
"definitions": {
"payment_1": {
"type": ["number", "string", "object"],
"pattern": "^curve:[0-9]+$",
"additionalProperties": false,
"properties": {
"default": {
"type": ["number", "string"],
"pattern": "^curve:[0-9]+$"
}
},
"patternProperties": {
"^([A-Z]{2})?(\/[A-Z]*)?(-[A-Z][A-Z0-9]*)?$": {
"type": ["number", "string"],
"pattern": "^curve:[0-9]+$"
}
}
},
"quality_1": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^[A-Z]{3}$": {
"type": ["number", "string", "object"],
"pattern": "^curve:[0-9]+$",
"additionalProperties": false,
"properties": {
"default": {
"type": ["number", "string"],
"pattern": "^curve:[0-9]+$"
}
},
"patternProperties": {
"^([A-Z]{2})?(\/[A-Z]*)?(-[A-Z][A-Z0-9]*)?$": {
"type": ["number", "string"],
"pattern": "^curve:[0-9]+$"
}
}
}
}
},
"curve": {
"type": "object",
"required": ["id", "mode", "data"],
"additionalProperties": false,
"properties": {
"id": {
"type": "integer",
"minimum": 0
},
"mode": {"enum": ["oe", "kmw"]},
"data": {
"anyOf": [
{"type": "number"},
{"$ref": "#/definitions/curve_data"}
]
},
"geb": {
"anyOf": [
{"type": "number"},
{"$ref": "#/definitions/curve_data"}
]
}
}
},
"curve_data": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"patternProperties": {
"^[<>]?([0-9]+(\\.[0-9]+)?)(oe|kmw)$": {"type": "number"}
}
}
}
}