116 lines
2.7 KiB
JSON
116 lines
2.7 KiB
JSON
|
|
{
|
||
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||
|
|
"title": "CustomerOrder",
|
||
|
|
"description": "Schema for customer order data in Bakery-IA system",
|
||
|
|
"type": "object",
|
||
|
|
"required": [
|
||
|
|
"id",
|
||
|
|
"tenant_id",
|
||
|
|
"customer_id",
|
||
|
|
"order_number",
|
||
|
|
"order_date",
|
||
|
|
"delivery_date",
|
||
|
|
"status",
|
||
|
|
"total_amount",
|
||
|
|
"created_at"
|
||
|
|
],
|
||
|
|
"properties": {
|
||
|
|
"id": {
|
||
|
|
"type": "string",
|
||
|
|
"format": "uuid",
|
||
|
|
"description": "Unique identifier for the customer order"
|
||
|
|
},
|
||
|
|
"tenant_id": {
|
||
|
|
"type": "string",
|
||
|
|
"format": "uuid",
|
||
|
|
"description": "Tenant identifier"
|
||
|
|
},
|
||
|
|
"customer_id": {
|
||
|
|
"type": "string",
|
||
|
|
"format": "uuid",
|
||
|
|
"description": "Customer identifier"
|
||
|
|
},
|
||
|
|
"order_number": {
|
||
|
|
"type": "string",
|
||
|
|
"minLength": 1,
|
||
|
|
"maxLength": 50,
|
||
|
|
"description": "Order number"
|
||
|
|
},
|
||
|
|
"order_date": {
|
||
|
|
"type": "string",
|
||
|
|
"format": "date-time",
|
||
|
|
"description": "Order date"
|
||
|
|
},
|
||
|
|
"delivery_date": {
|
||
|
|
"type": "string",
|
||
|
|
"format": "date-time",
|
||
|
|
"description": "Delivery date"
|
||
|
|
},
|
||
|
|
"status": {
|
||
|
|
"type": "string",
|
||
|
|
"enum": ["DRAFT", "PENDING", "PROCESSING", "DELIVERED", "CANCELLED", "REJECTED"],
|
||
|
|
"description": "Order status"
|
||
|
|
},
|
||
|
|
"total_amount": {
|
||
|
|
"type": "number",
|
||
|
|
"minimum": 0,
|
||
|
|
"description": "Total order amount in EUR"
|
||
|
|
},
|
||
|
|
"created_at": {
|
||
|
|
"type": "string",
|
||
|
|
"format": "date-time",
|
||
|
|
"description": "Creation timestamp"
|
||
|
|
},
|
||
|
|
"notes": {
|
||
|
|
"type": "string",
|
||
|
|
"description": "Additional notes"
|
||
|
|
},
|
||
|
|
"is_urgent": {
|
||
|
|
"type": "boolean",
|
||
|
|
"description": "Urgent order flag"
|
||
|
|
},
|
||
|
|
"enterprise_order": {
|
||
|
|
"type": "boolean",
|
||
|
|
"description": "Enterprise-level order"
|
||
|
|
},
|
||
|
|
"contract_reference": {
|
||
|
|
"type": "string",
|
||
|
|
"description": "Contract reference"
|
||
|
|
},
|
||
|
|
"delivery_locations": {
|
||
|
|
"type": "array",
|
||
|
|
"items": {
|
||
|
|
"type": "object",
|
||
|
|
"properties": {
|
||
|
|
"location": {
|
||
|
|
"type": "string"
|
||
|
|
},
|
||
|
|
"quantity": {
|
||
|
|
"type": "number",
|
||
|
|
"minimum": 0
|
||
|
|
},
|
||
|
|
"delivery_time": {
|
||
|
|
"type": "string",
|
||
|
|
"format": "date-time"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"description": "Delivery locations"
|
||
|
|
},
|
||
|
|
"reasoning_data": {
|
||
|
|
"type": "object",
|
||
|
|
"description": "Reasoning data for urgent orders",
|
||
|
|
"properties": {
|
||
|
|
"type": {
|
||
|
|
"type": "string",
|
||
|
|
"description": "Reasoning type"
|
||
|
|
},
|
||
|
|
"parameters": {
|
||
|
|
"type": "object",
|
||
|
|
"description": "Reasoning parameters"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"additionalProperties": false
|
||
|
|
}
|