demo seed change 3
This commit is contained in:
@@ -40,6 +40,7 @@ INTERNAL_SERVICES: Set[str] = {
|
||||
"alert-service",
|
||||
"alert-processor-service",
|
||||
"demo-session-service",
|
||||
"demo-service", # Alternative name for demo session service
|
||||
"external-service",
|
||||
|
||||
# Enterprise services
|
||||
|
||||
@@ -39,13 +39,7 @@
|
||||
"recipe_id": null,
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"created_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7",
|
||||
"enterprise_shared": true,
|
||||
"shared_locations": [
|
||||
"Madrid Centro",
|
||||
"Barcelona Gràcia",
|
||||
"Valencia Ruzafa"
|
||||
]
|
||||
"created_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7"
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000000002",
|
||||
@@ -86,13 +80,7 @@
|
||||
"recipe_id": null,
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"created_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7",
|
||||
"enterprise_shared": true,
|
||||
"shared_locations": [
|
||||
"Madrid Centro",
|
||||
"Barcelona Gràcia",
|
||||
"Valencia Ruzafa"
|
||||
]
|
||||
"created_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7"
|
||||
},
|
||||
{
|
||||
"id": "20000000-0000-0000-0000-000000000001",
|
||||
@@ -134,13 +122,7 @@
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"created_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7",
|
||||
"enterprise_shared": true,
|
||||
"shared_locations": [
|
||||
"Madrid Centro",
|
||||
"Barcelona Gràcia",
|
||||
"Valencia Ruzafa"
|
||||
]
|
||||
"created_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7"
|
||||
}
|
||||
],
|
||||
"stock": [
|
||||
@@ -148,46 +130,49 @@
|
||||
"id": "10000000-0000-0000-0000-000000001001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
||||
"quantity": 850.0,
|
||||
"location": "Central Warehouse - Madrid",
|
||||
"production_stage": "RAW_MATERIAL",
|
||||
"current_quantity": 850.0,
|
||||
"reserved_quantity": 0.0,
|
||||
"available_quantity": 850.0,
|
||||
"storage_location": "Central Warehouse - Madrid",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "BASE_TS + 180d 18h",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "ENT-HAR-20250115-001",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"enterprise_shared": true
|
||||
"updated_at": "BASE_TS"
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000001002",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000002",
|
||||
"quantity": 280.0,
|
||||
"location": "Central Warehouse - Madrid",
|
||||
"production_stage": "RAW_MATERIAL",
|
||||
"current_quantity": 280.0,
|
||||
"reserved_quantity": 0.0,
|
||||
"available_quantity": 280.0,
|
||||
"storage_location": "Central Warehouse - Madrid",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "BASE_TS + 30d 18h",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000002",
|
||||
"batch_number": "ENT-MAN-20250115-001",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"enterprise_shared": true
|
||||
"updated_at": "BASE_TS"
|
||||
},
|
||||
{
|
||||
"id": "20000000-0000-0000-0000-000000001001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 120.0,
|
||||
"location": "Central Warehouse - Madrid",
|
||||
"production_stage": "FINISHED_PRODUCT",
|
||||
"current_quantity": 120.0,
|
||||
"reserved_quantity": 0.0,
|
||||
"available_quantity": 120.0,
|
||||
"storage_location": "Central Warehouse - Madrid",
|
||||
"production_stage": "fully_baked",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "BASE_TS + 1d",
|
||||
"supplier_id": null,
|
||||
"batch_number": "ENT-BAG-20250115-001",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"enterprise_shared": true
|
||||
"updated_at": "BASE_TS"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1022,10 +1022,10 @@
|
||||
"id": "10000000-0000-0000-0000-000000001001",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
||||
"quantity": 80.0,
|
||||
"current_quantity": 0,
|
||||
"reserved_quantity": 0.0,
|
||||
"available_quantity": 80.0,
|
||||
"location": "Almacén Principal - Zona A",
|
||||
"available_quantity": 0,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "BASE_TS + 180d 18h",
|
||||
@@ -1034,17 +1034,16 @@
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false,
|
||||
"notes": "⚠️ CRITICAL: Below reorder point (80 < 150) - NO pending PO - Should trigger RED alert"
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000001002",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000011",
|
||||
"quantity": 25.0,
|
||||
"current_quantity": 0,
|
||||
"reserved_quantity": 5.0,
|
||||
"available_quantity": 20.0,
|
||||
"location": "Almacén Refrigerado - Zona B",
|
||||
"available_quantity": 0,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "BASE_TS + 30d 18h",
|
||||
@@ -1053,17 +1052,16 @@
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false,
|
||||
"notes": "⚠️ LOW: Below reorder point (25 < 40) - Has pending PO (PO-2025-006) - Should show warning"
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000001003",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000021",
|
||||
"quantity": 8.0,
|
||||
"current_quantity": 4.46,
|
||||
"reserved_quantity": 2.0,
|
||||
"available_quantity": 6.0,
|
||||
"location": "Almacén Refrigerado - Zona C",
|
||||
"available_quantity": 2.46,
|
||||
"storage_location": "Almacén Refrigerado - Zona C",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "BASE_TS + 43d 18h",
|
||||
@@ -1072,17 +1070,16 @@
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false,
|
||||
"notes": "⚠️ LOW: Below reorder point (8 < 10) - Has pending PO (PO-2025-004-URGENT) - Critical for production"
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000001004",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000002",
|
||||
"quantity": 180.0,
|
||||
"current_quantity": 96.0,
|
||||
"reserved_quantity": 20.0,
|
||||
"available_quantity": 160.0,
|
||||
"location": "Almacén Principal - Zona A",
|
||||
"available_quantity": 76.0,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "BASE_TS + 150d 18h",
|
||||
@@ -1091,17 +1088,16 @@
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false,
|
||||
"notes": "Above reorder point - Normal stock level"
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000001005",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000012",
|
||||
"quantity": 120.0,
|
||||
"current_quantity": 107.26,
|
||||
"reserved_quantity": 10.0,
|
||||
"available_quantity": 110.0,
|
||||
"location": "Almacén Refrigerado - Zona B",
|
||||
"available_quantity": 97.26,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "BASE_TS + 6d 18h",
|
||||
@@ -1110,8 +1106,367 @@
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false,
|
||||
"notes": "Above reorder point - Normal stock level"
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "fcb7b22d-147a-44d8-9290-ce9ee91f57bc",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000005",
|
||||
"current_quantity": 199.19,
|
||||
"reserved_quantity": 12.74,
|
||||
"available_quantity": 171.35,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-05-20T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "HAR-CEN-005-20250111-229",
|
||||
"created_at": "2025-01-09T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "a80f71c3-e0a9-4b48-b366-0c6c0dfa9abf",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000004",
|
||||
"current_quantity": 76.28,
|
||||
"reserved_quantity": 4.53,
|
||||
"available_quantity": 66.61,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-02-04T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "PRO-NAP-001-20250114-031",
|
||||
"created_at": "2025-01-10T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "e721aae2-6dc4-4ad9-a445-51779eff9a09",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000002",
|
||||
"current_quantity": 19.46,
|
||||
"reserved_quantity": 1.79,
|
||||
"available_quantity": 17.41,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-02-11T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "PRO-CRO-001-20250103-559",
|
||||
"created_at": "2025-01-12T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "6c5b7f4b-d125-462e-a74e-c46f55752bcd",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000031",
|
||||
"current_quantity": 62.5,
|
||||
"reserved_quantity": 5.72,
|
||||
"available_quantity": 53.36,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-05-05T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000004",
|
||||
"batch_number": "BAS-SAL-001-20250103-433",
|
||||
"created_at": "2025-01-08T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "d578fd7e-6d91-478c-b037-283127e415a9",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000043",
|
||||
"current_quantity": 39.28,
|
||||
"reserved_quantity": 3.32,
|
||||
"available_quantity": 34.43,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-04-27T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "ESP-PAS-003-20250109-868",
|
||||
"created_at": "2025-01-14T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "5e9f36df-de8f-4982-80e9-f38b8a59db76",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000042",
|
||||
"current_quantity": 79.51,
|
||||
"reserved_quantity": 6.31,
|
||||
"available_quantity": 72.59,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-06-02T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "ESP-ALM-002-20250113-566",
|
||||
"created_at": "2025-01-08T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "a6ef4470-42f9-4fc0-ab37-4ea9fc9c8fb8",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000045",
|
||||
"current_quantity": 42.91,
|
||||
"reserved_quantity": 3.12,
|
||||
"available_quantity": 37.71,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-04-23T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "ESP-CRE-005-20250114-678",
|
||||
"created_at": "2025-01-14T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "31510672-3ba8-4593-9ed6-7f35d508c187",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000033",
|
||||
"current_quantity": 0,
|
||||
"reserved_quantity": 11.51,
|
||||
"available_quantity": 0,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-06-02T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "BAS-AGU-003-20250110-465",
|
||||
"created_at": "2025-01-12T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "8cc5f11c-fae1-4484-89bd-9f608e88c6c0",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000022",
|
||||
"current_quantity": 11.03,
|
||||
"reserved_quantity": 0.63,
|
||||
"available_quantity": 10.08,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-07-13T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000006",
|
||||
"batch_number": "LEV-SEC-002-20250104-664",
|
||||
"created_at": "2025-01-10T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "6d59b4f2-6f9f-46e2-965c-e7fa269933da",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000003",
|
||||
"current_quantity": 67.78,
|
||||
"reserved_quantity": 7.73,
|
||||
"available_quantity": 61.39,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-02-03T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "PRO-PUE-001-20250110-948",
|
||||
"created_at": "2025-01-09T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "563fbfa1-093a-40a5-a147-4a636d1440df",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000001",
|
||||
"current_quantity": 50.87,
|
||||
"reserved_quantity": 2.71,
|
||||
"available_quantity": 44.85,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-01-23T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "PRO-BAG-001-20250111-842",
|
||||
"created_at": "2025-01-12T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "699b69e7-bc6f-428d-9b42-9f432eeabdf5",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000006",
|
||||
"current_quantity": 186.36,
|
||||
"reserved_quantity": 13.28,
|
||||
"available_quantity": 167.71,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-06-26T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "HAR-ESP-006-20250103-323",
|
||||
"created_at": "2025-01-09T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "7f826f83-5990-44e7-966d-c63478efc70e",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000023",
|
||||
"current_quantity": 0,
|
||||
"reserved_quantity": 1.12,
|
||||
"available_quantity": 0,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-01-29T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000006",
|
||||
"batch_number": "LEV-MAD-003-20250103-575",
|
||||
"created_at": "2025-01-11T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "27777a6e-7d84-4e93-8767-d5ed9af4753c",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000014",
|
||||
"current_quantity": 134.16,
|
||||
"reserved_quantity": 13.33,
|
||||
"available_quantity": 124.17,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-01-29T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000002",
|
||||
"batch_number": "LAC-HUE-004-20250112-522",
|
||||
"created_at": "2025-01-08T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "2e0744e4-003b-4758-9682-6c133fc680dd",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000032",
|
||||
"current_quantity": 24.98,
|
||||
"reserved_quantity": 1.7,
|
||||
"available_quantity": 21.6,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-07-11T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "BAS-AZU-002-20250108-611",
|
||||
"created_at": "2025-01-11T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "0638733f-1fec-4cff-963d-ac9799a1e5e3",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000041",
|
||||
"current_quantity": 69.89,
|
||||
"reserved_quantity": 4.55,
|
||||
"available_quantity": 65.34,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-04-16T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "ESP-CHO-001-20250104-739",
|
||||
"created_at": "2025-01-08T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "95b8322f-8e0b-42f6-93a8-dcc2ff23893a",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000003",
|
||||
"current_quantity": 200.74,
|
||||
"reserved_quantity": 13.21,
|
||||
"available_quantity": 170.69,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-04-29T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "HAR-FUE-003-20250110-446",
|
||||
"created_at": "2025-01-09T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "de8f7182-8f7c-4152-83f2-54c515c79b08",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000044",
|
||||
"current_quantity": 81.54,
|
||||
"reserved_quantity": 8.22,
|
||||
"available_quantity": 70.18,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-06-18T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "ESP-VAI-004-20250102-183",
|
||||
"created_at": "2025-01-09T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "7696385d-7afc-4194-b721-a75addeefdad",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000004",
|
||||
"current_quantity": 184.59,
|
||||
"reserved_quantity": 17.97,
|
||||
"available_quantity": 157.07,
|
||||
"storage_location": "Almacén Principal - Zona A",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-07-01T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "HAR-INT-004-20250111-157",
|
||||
"created_at": "2025-01-08T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
},
|
||||
{
|
||||
"id": "f1dca277-56a0-4e31-a642-94478b28c670",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000013",
|
||||
"current_quantity": 166.05,
|
||||
"reserved_quantity": 8.63,
|
||||
"available_quantity": 156.57,
|
||||
"storage_location": "Almacén Refrigerado - Zona B",
|
||||
"production_stage": "raw_ingredient",
|
||||
"quality_status": "good",
|
||||
"expiration_date": "2025-02-10T06:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000002",
|
||||
"batch_number": "LAC-NAT-003-20250109-501",
|
||||
"created_at": "2025-01-08T06:00:00Z",
|
||||
"updated_at": "BASE_TS",
|
||||
"is_available": true,
|
||||
"is_expired": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -261,7 +261,13 @@
|
||||
"priority": "HIGH",
|
||||
"current_process_stage": null,
|
||||
"process_stage_history": null,
|
||||
"pending_quality_checks": null,
|
||||
"pending_quality_checks": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000004",
|
||||
"check_type": "visual_inspection",
|
||||
"status": "pending"
|
||||
}
|
||||
],
|
||||
"completed_quality_checks": null,
|
||||
"estimated_cost": 150.0,
|
||||
"actual_cost": null,
|
||||
@@ -419,16 +425,24 @@
|
||||
"current_process_stage": "packaging",
|
||||
"process_stage_history": null,
|
||||
"pending_quality_checks": null,
|
||||
"completed_quality_checks": null,
|
||||
"completed_quality_checks": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000001",
|
||||
"check_type": "visual_inspection",
|
||||
"status": "completed",
|
||||
"result": "passed",
|
||||
"quality_score": 9.5
|
||||
}
|
||||
],
|
||||
"estimated_cost": 150.0,
|
||||
"actual_cost": 148.5,
|
||||
"labor_cost": 80.0,
|
||||
"material_cost": 55.0,
|
||||
"overhead_cost": 13.5,
|
||||
"yield_percentage": 98.0,
|
||||
"quality_score": 95.0,
|
||||
"quality_score": 9.5,
|
||||
"waste_quantity": 2.0,
|
||||
"defect_quantity": 0.0,
|
||||
"defect_quantity": 2.0,
|
||||
"waste_defect_type": "burnt",
|
||||
"equipment_used": [
|
||||
"30000000-0000-0000-0000-000000000001"
|
||||
@@ -469,16 +483,24 @@
|
||||
"current_process_stage": "packaging",
|
||||
"process_stage_history": null,
|
||||
"pending_quality_checks": null,
|
||||
"completed_quality_checks": null,
|
||||
"completed_quality_checks": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000002",
|
||||
"check_type": "dimensional_check",
|
||||
"status": "completed",
|
||||
"result": "passed",
|
||||
"quality_score": 9.2
|
||||
}
|
||||
],
|
||||
"estimated_cost": 280.0,
|
||||
"actual_cost": 275.0,
|
||||
"labor_cost": 120.0,
|
||||
"material_cost": 125.0,
|
||||
"overhead_cost": 30.0,
|
||||
"yield_percentage": 95.8,
|
||||
"quality_score": 92.0,
|
||||
"quality_score": 9.2,
|
||||
"waste_quantity": 3.0,
|
||||
"defect_quantity": 2.0,
|
||||
"defect_quantity": 3.0,
|
||||
"waste_defect_type": "misshapen",
|
||||
"equipment_used": [
|
||||
"30000000-0000-0000-0000-000000000002",
|
||||
@@ -572,11 +594,11 @@
|
||||
"pending_quality_checks": null,
|
||||
"completed_quality_checks": [
|
||||
{
|
||||
"control_id": "70000000-0000-0000-0000-000000000003",
|
||||
"control_type": "taste_test",
|
||||
"result": "FAILED",
|
||||
"quality_score": 65.0,
|
||||
"control_date": "2025-01-09T14:30:00Z"
|
||||
"id": "70000000-0000-0000-0000-000000000003",
|
||||
"check_type": "taste_test",
|
||||
"status": "completed",
|
||||
"result": "failed",
|
||||
"quality_score": 6.5
|
||||
}
|
||||
],
|
||||
"estimated_cost": 220.0,
|
||||
@@ -585,9 +607,9 @@
|
||||
"material_cost": 98.0,
|
||||
"overhead_cost": 25.0,
|
||||
"yield_percentage": 97.8,
|
||||
"quality_score": 65.0,
|
||||
"quality_score": 6.5,
|
||||
"waste_quantity": 1.0,
|
||||
"defect_quantity": 1.0,
|
||||
"defect_quantity": 10.0,
|
||||
"waste_defect_type": "off_taste",
|
||||
"equipment_used": [
|
||||
"30000000-0000-0000-0000-000000000001",
|
||||
@@ -1131,7 +1153,13 @@
|
||||
"priority": "MEDIUM",
|
||||
"current_process_stage": "baking",
|
||||
"process_stage_history": null,
|
||||
"pending_quality_checks": null,
|
||||
"pending_quality_checks": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000004",
|
||||
"check_type": "visual_inspection",
|
||||
"status": "pending"
|
||||
}
|
||||
],
|
||||
"completed_quality_checks": null,
|
||||
"estimated_cost": 150.0,
|
||||
"actual_cost": null,
|
||||
@@ -1615,5 +1643,93 @@
|
||||
"updated_at": "BASE_TS",
|
||||
"completed_at": null
|
||||
}
|
||||
],
|
||||
"quality_checks": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000001",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"batch_id": "40000000-0000-0000-0000-000000000001",
|
||||
"check_type": "visual_inspection",
|
||||
"check_time": "2025-01-08T14:30:00Z",
|
||||
"checker_id": "50000000-0000-0000-0000-000000000007",
|
||||
"quality_score": 9.5,
|
||||
"pass_fail": true,
|
||||
"defect_count": 2,
|
||||
"defect_types": [
|
||||
{
|
||||
"defect_type": "burnt",
|
||||
"quantity": 2.0,
|
||||
"severity": "minor"
|
||||
}
|
||||
],
|
||||
"check_notes": "Excelente aspecto y textura, 2 unidades con quemaduras leves (dentro de tolerancia)",
|
||||
"corrective_actions": null,
|
||||
"created_at": "BASE_TS - 7d 8h 30m",
|
||||
"updated_at": "BASE_TS - 7d 8h 45m"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000002",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"batch_id": "40000000-0000-0000-0000-000000000002",
|
||||
"check_type": "dimensional_check",
|
||||
"check_time": "2025-01-08T14:45:00Z",
|
||||
"checker_id": "50000000-0000-0000-0000-000000000007",
|
||||
"quality_score": 9.2,
|
||||
"pass_fail": true,
|
||||
"defect_count": 3,
|
||||
"defect_types": [
|
||||
{
|
||||
"defect_type": "misshapen",
|
||||
"quantity": 3.0,
|
||||
"severity": "minor"
|
||||
}
|
||||
],
|
||||
"check_notes": "Buen desarrollo y laminado, 3 unidades con forma irregular (dentro de tolerancia)",
|
||||
"corrective_actions": null,
|
||||
"created_at": "BASE_TS - 7d 8h 45m",
|
||||
"updated_at": "BASE_TS - 7d 9h"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000003",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"batch_id": "40000000-0000-0000-0000-000000000004",
|
||||
"check_type": "taste_test",
|
||||
"check_time": "2025-01-09T14:30:00Z",
|
||||
"checker_id": "50000000-0000-0000-0000-000000000007",
|
||||
"quality_score": 6.5,
|
||||
"pass_fail": false,
|
||||
"defect_count": 10,
|
||||
"defect_types": [
|
||||
{
|
||||
"defect_type": "off_taste",
|
||||
"quantity": 10.0,
|
||||
"severity": "major"
|
||||
}
|
||||
],
|
||||
"check_notes": "⚠️ CRITICAL: Sabor amargo en el chocolate, posible problema con proveedor de cacao",
|
||||
"corrective_actions": [
|
||||
"Lote puesto en cuarentena",
|
||||
"Notificado proveedor de chocolate",
|
||||
"Programada nueva prueba con muestra diferente"
|
||||
],
|
||||
"created_at": "BASE_TS - 6d 8h 30m",
|
||||
"updated_at": "BASE_TS - 6d 9h"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000004",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"batch_id": "40000000-0000-0000-0000-000000000015",
|
||||
"check_type": "visual_inspection",
|
||||
"check_time": "BASE_TS + 0h",
|
||||
"checker_id": null,
|
||||
"quality_score": 0.0,
|
||||
"pass_fail": false,
|
||||
"defect_count": 0,
|
||||
"defect_types": null,
|
||||
"check_notes": "⚠️ PENDING: Control de calidad programado para lote en producción",
|
||||
"corrective_actions": null,
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -11,11 +11,11 @@
|
||||
"required_delivery_date": "BASE_TS - 4h",
|
||||
"estimated_delivery_date": "BASE_TS - 4h",
|
||||
"expected_delivery_date": "BASE_TS - 4h",
|
||||
"subtotal": 500.0,
|
||||
"tax_amount": 105.0,
|
||||
"subtotal": 510.0,
|
||||
"tax_amount": 107.1,
|
||||
"shipping_cost": 20.0,
|
||||
"discount_amount": 0.0,
|
||||
"total_amount": 625.0,
|
||||
"total_amount": 637.1,
|
||||
"currency": "EUR",
|
||||
"delivery_address": "Calle Panadería, 45, 28001 Madrid",
|
||||
"delivery_instructions": "URGENTE: Entrega en almacén trasero",
|
||||
@@ -26,6 +26,32 @@
|
||||
"supplier_confirmation_date": "BASE_TS - 23h",
|
||||
"supplier_reference": "SUP-REF-LATE-001",
|
||||
"notes": "⚠️ EDGE CASE: Delivery should have arrived 4 hours ago - will trigger red supplier delay alert",
|
||||
"reasoning_data": {
|
||||
"type": "low_stock_detection",
|
||||
"parameters": {
|
||||
"supplier_name": "Harinas del Norte",
|
||||
"product_names": ["Harina de Trigo T55"],
|
||||
"product_count": 1,
|
||||
"current_stock": 15,
|
||||
"required_stock": 150,
|
||||
"days_until_stockout": 1,
|
||||
"threshold_percentage": 20,
|
||||
"stock_percentage": 10
|
||||
},
|
||||
"consequence": {
|
||||
"type": "stockout_risk",
|
||||
"severity": "high",
|
||||
"impact_days": 1,
|
||||
"affected_products": ["Baguette Tradicional", "Pan de Pueblo"],
|
||||
"estimated_lost_orders": 25
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "orchestrator_auto",
|
||||
"ai_assisted": true,
|
||||
"delivery_delayed": true,
|
||||
"delay_hours": 4
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000005"
|
||||
},
|
||||
{
|
||||
@@ -39,11 +65,11 @@
|
||||
"required_delivery_date": "BASE_TS + 2h30m",
|
||||
"estimated_delivery_date": "BASE_TS + 2h30m",
|
||||
"expected_delivery_date": "BASE_TS + 2h30m",
|
||||
"subtotal": 300.0,
|
||||
"tax_amount": 63.0,
|
||||
"subtotal": 303.5,
|
||||
"tax_amount": 63.74,
|
||||
"shipping_cost": 15.0,
|
||||
"discount_amount": 0.0,
|
||||
"total_amount": 378.0,
|
||||
"total_amount": 382.24,
|
||||
"currency": "EUR",
|
||||
"delivery_address": "Calle Panadería, 45, 28001 Madrid",
|
||||
"delivery_instructions": "Mantener refrigerado",
|
||||
@@ -54,6 +80,27 @@
|
||||
"supplier_confirmation_date": "BASE_TS - 30m",
|
||||
"supplier_reference": "SUP-REF-UPCOMING-001",
|
||||
"notes": "⚠️ EDGE CASE: Delivery expected in 2.5 hours - will show in upcoming deliveries",
|
||||
"reasoning_data": {
|
||||
"type": "production_requirement",
|
||||
"parameters": {
|
||||
"supplier_name": "Lácteos Gipuzkoa",
|
||||
"product_names": ["Mantequilla sin Sal", "Leche Entera"],
|
||||
"product_count": 2,
|
||||
"production_batches": 3,
|
||||
"required_by_date": "tomorrow morning"
|
||||
},
|
||||
"consequence": {
|
||||
"type": "production_delay",
|
||||
"severity": "high",
|
||||
"impact": "blocked_production"
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "orchestrator_auto",
|
||||
"ai_assisted": true,
|
||||
"upcoming_delivery": true,
|
||||
"hours_until_delivery": 2.5
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000005"
|
||||
},
|
||||
{
|
||||
@@ -63,11 +110,11 @@
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"status": "completed",
|
||||
"priority": "normal",
|
||||
"subtotal": 850.0,
|
||||
"tax_amount": 178.5,
|
||||
"subtotal": 760.0,
|
||||
"tax_amount": 159.6,
|
||||
"shipping_cost": 25.0,
|
||||
"discount_amount": 0.0,
|
||||
"total_amount": 1053.5,
|
||||
"total_amount": 944.6,
|
||||
"currency": "EUR",
|
||||
"delivery_address": "Calle Panadería, 45, 28001 Madrid",
|
||||
"delivery_instructions": "Entrega en almacén trasero",
|
||||
@@ -76,6 +123,28 @@
|
||||
"requires_approval": false,
|
||||
"supplier_reference": "SUP-REF-2025-001",
|
||||
"notes": "Pedido habitual semanal de harinas",
|
||||
"reasoning_data": {
|
||||
"type": "safety_stock_replenishment",
|
||||
"parameters": {
|
||||
"supplier_name": "Harinas del Norte",
|
||||
"product_names": ["Harina de Trigo T55", "Harina de Trigo T65", "Harina de Centeno", "Sal Marina Fina"],
|
||||
"product_count": 4,
|
||||
"current_safety_stock": 120,
|
||||
"target_safety_stock": 300,
|
||||
"reorder_point": 150
|
||||
},
|
||||
"consequence": {
|
||||
"type": "stockout_risk",
|
||||
"severity": "medium",
|
||||
"impact": "reduced_buffer"
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "orchestrator_auto",
|
||||
"ai_assisted": true,
|
||||
"recurring_order": true,
|
||||
"schedule": "weekly"
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000005",
|
||||
"order_date": "BASE_TS - 7d",
|
||||
"required_delivery_date": "BASE_TS - 2d",
|
||||
@@ -104,6 +173,28 @@
|
||||
"requires_approval": false,
|
||||
"supplier_reference": "LGIPUZ-2025-042",
|
||||
"notes": "Pedido de lácteos para producción semanal",
|
||||
"reasoning_data": {
|
||||
"type": "forecast_demand",
|
||||
"parameters": {
|
||||
"supplier_name": "Lácteos Gipuzkoa",
|
||||
"product_names": ["Mantequilla sin Sal 82% MG"],
|
||||
"product_count": 1,
|
||||
"forecast_period_days": 7,
|
||||
"total_demand": 80,
|
||||
"forecast_confidence": 88
|
||||
},
|
||||
"consequence": {
|
||||
"type": "insufficient_supply",
|
||||
"severity": "medium",
|
||||
"impact_days": 7
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "orchestrator_auto",
|
||||
"forecast_confidence": 0.88,
|
||||
"ai_assisted": true,
|
||||
"perishable_goods": true
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000005",
|
||||
"order_date": "BASE_TS - 5d",
|
||||
"required_delivery_date": "BASE_TS - 1d",
|
||||
@@ -119,11 +210,11 @@
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000003",
|
||||
"status": "approved",
|
||||
"priority": "high",
|
||||
"subtotal": 450.0,
|
||||
"tax_amount": 94.5,
|
||||
"subtotal": 490.0,
|
||||
"tax_amount": 102.9,
|
||||
"shipping_cost": 20.0,
|
||||
"discount_amount": 22.5,
|
||||
"total_amount": 542.0,
|
||||
"discount_amount": 24.5,
|
||||
"total_amount": 588.4,
|
||||
"currency": "EUR",
|
||||
"delivery_address": "Calle Panadería, 45, 28001 Madrid",
|
||||
"delivery_instructions": "Requiere inspección de calidad",
|
||||
@@ -135,16 +226,24 @@
|
||||
"approved_by": "50000000-0000-0000-0000-000000000006",
|
||||
"notes": "Pedido urgente para nueva línea de productos ecológicos - Auto-aprobado por IA",
|
||||
"reasoning_data": {
|
||||
"job": "ensure_quality_ingredients",
|
||||
"context": {
|
||||
"en": "Organic ingredients needed for new product line",
|
||||
"es": "Ingredientes ecológicos necesarios para nueva línea de productos",
|
||||
"eu": "Produktu lerro berrirako osagai ekologikoak behar dira"
|
||||
"type": "supplier_contract",
|
||||
"parameters": {
|
||||
"supplier_name": "Productos Ecológicos del Norte",
|
||||
"product_names": ["Organic ingredients"],
|
||||
"product_count": 1,
|
||||
"contract_terms": "certified_supplier",
|
||||
"contract_quantity": 450.0
|
||||
},
|
||||
"decision": {
|
||||
"en": "Auto-approved: Under €500 threshold and from certified supplier",
|
||||
"es": "Auto-aprobado: Bajo umbral de €500 y de proveedor certificado",
|
||||
"eu": "Auto-onartuta: €500ko mugaren azpian eta hornitzaile ziurtatutik"
|
||||
"consequence": {
|
||||
"type": "quality_assurance",
|
||||
"severity": "medium",
|
||||
"impact": "new_product_line_delay"
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "manual",
|
||||
"ai_assisted": true,
|
||||
"auto_approved": true,
|
||||
"auto_approval_rule_id": "10000000-0000-0000-0000-000000000001"
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000005",
|
||||
@@ -161,11 +260,11 @@
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"status": "confirmed",
|
||||
"priority": "urgent",
|
||||
"subtotal": 1200.0,
|
||||
"tax_amount": 252.0,
|
||||
"subtotal": 1040.0,
|
||||
"tax_amount": 218.4,
|
||||
"shipping_cost": 35.0,
|
||||
"discount_amount": 60.0,
|
||||
"total_amount": 1427.0,
|
||||
"discount_amount": 52.0,
|
||||
"total_amount": 1241.4,
|
||||
"currency": "EUR",
|
||||
"delivery_address": "Calle Panadería, 45, 28001 Madrid",
|
||||
"delivery_instructions": "URGENTE - Entrega antes de las 10:00 AM",
|
||||
@@ -175,16 +274,29 @@
|
||||
"supplier_reference": "SUP-URGENT-2025-005",
|
||||
"notes": "EDGE CASE: Entrega retrasada - debió llegar hace 4 horas. Stock crítico de harina",
|
||||
"reasoning_data": {
|
||||
"job": "avoid_production_stoppage",
|
||||
"context": {
|
||||
"en": "Critical flour shortage - production at risk",
|
||||
"es": "Escasez crítica de harina - producción en riesgo",
|
||||
"eu": "Irina-faltagatik ekoizpena arriskuan"
|
||||
"type": "low_stock_detection",
|
||||
"parameters": {
|
||||
"supplier_name": "Harinas del Norte",
|
||||
"product_names": ["Harina de Trigo T55", "Levadura Fresca"],
|
||||
"product_count": 2,
|
||||
"current_stock": 0,
|
||||
"required_stock": 1000,
|
||||
"days_until_stockout": 0,
|
||||
"threshold_percentage": 20,
|
||||
"stock_percentage": 0
|
||||
},
|
||||
"urgency": {
|
||||
"en": "Urgent: Delivery delayed 4 hours, affecting today's production",
|
||||
"es": "Urgente: Entrega retrasada 4 horas, afectando la producción de hoy",
|
||||
"eu": "Presazkoa: Entrega 4 ordu berandu, gaurko ekoizpena eraginda"
|
||||
"consequence": {
|
||||
"type": "stockout_risk",
|
||||
"severity": "critical",
|
||||
"impact_days": 0,
|
||||
"affected_products": ["Baguette Tradicional", "Croissant"],
|
||||
"estimated_lost_orders": 50
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "orchestrator_auto",
|
||||
"ai_assisted": true,
|
||||
"delivery_delayed": true,
|
||||
"delay_hours": 4
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000006",
|
||||
@@ -215,6 +327,27 @@
|
||||
"requires_approval": false,
|
||||
"supplier_reference": "SUP-REF-2025-007",
|
||||
"notes": "Pedido de ingredientes especiales para línea premium - Entregado hace 5 días",
|
||||
"reasoning_data": {
|
||||
"type": "seasonal_demand",
|
||||
"parameters": {
|
||||
"supplier_name": "Ingredientes Premium del Sur",
|
||||
"product_names": ["Chocolate Negro 70% Cacao", "Almendras Laminadas", "Pasas de Corinto"],
|
||||
"product_count": 3,
|
||||
"season": "winter",
|
||||
"expected_demand_increase_pct": 35
|
||||
},
|
||||
"consequence": {
|
||||
"type": "missed_opportunity",
|
||||
"severity": "medium",
|
||||
"impact": "lost_seasonal_sales"
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "orchestrator_auto",
|
||||
"ai_assisted": true,
|
||||
"premium_line": true,
|
||||
"seasonal": true
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000005",
|
||||
"order_date": "BASE_TS - 7d",
|
||||
"required_delivery_date": "BASE_TS - 5d",
|
||||
@@ -230,11 +363,11 @@
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000004",
|
||||
"status": "draft",
|
||||
"priority": "normal",
|
||||
"subtotal": 280.0,
|
||||
"tax_amount": 58.8,
|
||||
"subtotal": 303.7,
|
||||
"tax_amount": 63.78,
|
||||
"shipping_cost": 12.0,
|
||||
"discount_amount": 0.0,
|
||||
"total_amount": 350.8,
|
||||
"total_amount": 379.48,
|
||||
"currency": "EUR",
|
||||
"delivery_address": "Calle Panadería, 45, 28001 Madrid",
|
||||
"delivery_instructions": "Llamar antes de entregar",
|
||||
@@ -242,6 +375,28 @@
|
||||
"delivery_phone": "+34 910 123 456",
|
||||
"requires_approval": false,
|
||||
"notes": "Pedido planificado para reposición semanal",
|
||||
"reasoning_data": {
|
||||
"type": "forecast_demand",
|
||||
"parameters": {
|
||||
"supplier_name": "Ingredientes Premium del Sur",
|
||||
"product_names": ["Specialty ingredients"],
|
||||
"product_count": 1,
|
||||
"forecast_period_days": 7,
|
||||
"total_demand": 280,
|
||||
"forecast_confidence": 82
|
||||
},
|
||||
"consequence": {
|
||||
"type": "insufficient_supply",
|
||||
"severity": "low",
|
||||
"impact_days": 7
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "orchestrator_auto",
|
||||
"forecast_confidence": 0.82,
|
||||
"ai_assisted": true,
|
||||
"draft_order": true
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000005",
|
||||
"order_date": "BASE_TS",
|
||||
"required_delivery_date": "BASE_TS + 3d",
|
||||
@@ -267,6 +422,27 @@
|
||||
"delivery_phone": "+34 910 123 456",
|
||||
"requires_approval": false,
|
||||
"notes": "⏰ EDGE CASE: Entrega esperada en 6 horas - mantequilla para producción de croissants de mañana",
|
||||
"reasoning_data": {
|
||||
"type": "production_requirement",
|
||||
"parameters": {
|
||||
"supplier_name": "Lácteos Gipuzkoa",
|
||||
"product_names": ["Mantequilla sin Sal 82% MG"],
|
||||
"product_count": 1,
|
||||
"production_batches": 5,
|
||||
"required_by_date": "tomorrow 06:00"
|
||||
},
|
||||
"consequence": {
|
||||
"type": "production_delay",
|
||||
"severity": "high",
|
||||
"impact": "blocked_production"
|
||||
},
|
||||
"metadata": {
|
||||
"trigger_source": "orchestrator_auto",
|
||||
"ai_assisted": true,
|
||||
"urgent_production": true,
|
||||
"hours_until_needed": 12
|
||||
}
|
||||
},
|
||||
"created_by": "50000000-0000-0000-0000-000000000006",
|
||||
"order_date": "BASE_TS - 0.5d",
|
||||
"required_delivery_date": "BASE_TS + 0.25d",
|
||||
@@ -309,8 +485,8 @@
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000001",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000005",
|
||||
"product_name": "Harina Centeno",
|
||||
"product_code": "HAR-CENT-005",
|
||||
"product_name": "Harina de Centeno",
|
||||
"product_code": "HAR-CEN-005",
|
||||
"ordered_quantity": 100.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 1.15,
|
||||
@@ -322,13 +498,13 @@
|
||||
"id": "51000000-0000-0000-0000-000000000004",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000001",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000006",
|
||||
"product_name": "Sal Marina",
|
||||
"product_code": "SAL-MAR-006",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000031",
|
||||
"product_name": "Sal Marina Fina",
|
||||
"product_code": "BAS-SAL-001",
|
||||
"ordered_quantity": 50.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 2.4,
|
||||
"line_total": 120.0,
|
||||
"unit_price": 0.6,
|
||||
"line_total": 30.0,
|
||||
"received_quantity": 50.0,
|
||||
"remaining_quantity": 0.0
|
||||
},
|
||||
@@ -338,7 +514,7 @@
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000002",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000011",
|
||||
"product_name": "Mantequilla sin Sal 82% MG",
|
||||
"product_code": "MANT-001",
|
||||
"product_code": "LAC-MAN-001",
|
||||
"ordered_quantity": 80.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 4.0,
|
||||
@@ -365,13 +541,13 @@
|
||||
"id": "51000000-0000-0000-0000-000000000007",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000004",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000011",
|
||||
"product_name": "Levadura Fresca",
|
||||
"product_code": "LEV-FRESC-001",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000021",
|
||||
"product_name": "Levadura Fresca de Panadería",
|
||||
"product_code": "LEV-FRE-001",
|
||||
"ordered_quantity": 50.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 8.0,
|
||||
"line_total": 400.0,
|
||||
"unit_price": 4.8,
|
||||
"line_total": 240.0,
|
||||
"received_quantity": 0.0,
|
||||
"remaining_quantity": 50.0,
|
||||
"notes": "Stock agotado - prioridad máxima"
|
||||
@@ -382,7 +558,7 @@
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000006",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000011",
|
||||
"product_name": "Mantequilla sin Sal 82% MG",
|
||||
"product_code": "MANT-001",
|
||||
"product_code": "LAC-MAN-001",
|
||||
"ordered_quantity": 30.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 6.5,
|
||||
@@ -396,7 +572,7 @@
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000007",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000041",
|
||||
"product_name": "Chocolate Negro 70% Cacao",
|
||||
"product_code": "CHO-NEG-001",
|
||||
"product_code": "ESP-CHO-001",
|
||||
"ordered_quantity": 20.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 15.5,
|
||||
@@ -410,7 +586,7 @@
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000007",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000042",
|
||||
"product_name": "Almendras Laminadas",
|
||||
"product_code": "ALM-LAM-001",
|
||||
"product_code": "ESP-ALM-002",
|
||||
"ordered_quantity": 15.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 8.9,
|
||||
@@ -424,13 +600,99 @@
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000007",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000043",
|
||||
"product_name": "Pasas de Corinto",
|
||||
"product_code": "PAS-COR-001",
|
||||
"product_code": "ESP-PAS-003",
|
||||
"ordered_quantity": 10.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 4.5,
|
||||
"line_total": 45.0,
|
||||
"received_quantity": 10.0,
|
||||
"remaining_quantity": 0.0
|
||||
},
|
||||
{
|
||||
"id": "51000000-0000-0000-0000-0000000000a1",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-0000000000c1",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000001",
|
||||
"product_name": "Harina de Trigo T55",
|
||||
"product_code": "HAR-T55-001",
|
||||
"ordered_quantity": 600.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 0.85,
|
||||
"line_total": 510.0,
|
||||
"received_quantity": 0.0,
|
||||
"remaining_quantity": 600.0,
|
||||
"notes": "URGENTE - Pedido retrasado 4 horas"
|
||||
},
|
||||
{
|
||||
"id": "51000000-0000-0000-0000-0000000000a2",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-0000000000c2",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000011",
|
||||
"product_name": "Mantequilla sin Sal 82% MG",
|
||||
"product_code": "LAC-MAN-001",
|
||||
"ordered_quantity": 35.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 6.5,
|
||||
"line_total": 227.5,
|
||||
"received_quantity": 0.0,
|
||||
"remaining_quantity": 35.0
|
||||
},
|
||||
{
|
||||
"id": "51000000-0000-0000-0000-0000000000a3",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-0000000000c2",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000012",
|
||||
"product_name": "Leche Entera Fresca",
|
||||
"product_code": "LAC-LEC-002",
|
||||
"ordered_quantity": 80.0,
|
||||
"unit_of_measure": "liters",
|
||||
"unit_price": 0.95,
|
||||
"line_total": 76.0,
|
||||
"received_quantity": 0.0,
|
||||
"remaining_quantity": 80.0
|
||||
},
|
||||
{
|
||||
"id": "51000000-0000-0000-0000-0000000000a4",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000003",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000006",
|
||||
"product_name": "Harina de Espelta Ecológica",
|
||||
"product_code": "HAR-ESP-006",
|
||||
"ordered_quantity": 200.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 2.45,
|
||||
"line_total": 490.0,
|
||||
"received_quantity": 0.0,
|
||||
"remaining_quantity": 200.0,
|
||||
"notes": "Ingrediente ecológico certificado para nueva línea"
|
||||
},
|
||||
{
|
||||
"id": "51000000-0000-0000-0000-0000000000a5",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000005",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000041",
|
||||
"product_name": "Chocolate Negro 70% Cacao",
|
||||
"product_code": "ESP-CHO-001",
|
||||
"ordered_quantity": 15.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 15.5,
|
||||
"line_total": 232.5,
|
||||
"received_quantity": 0.0,
|
||||
"remaining_quantity": 15.0
|
||||
},
|
||||
{
|
||||
"id": "51000000-0000-0000-0000-0000000000a6",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"purchase_order_id": "50000000-0000-0000-0000-000000000005",
|
||||
"inventory_product_id": "10000000-0000-0000-0000-000000000042",
|
||||
"product_name": "Almendras Laminadas",
|
||||
"product_code": "ESP-ALM-002",
|
||||
"ordered_quantity": 8.0,
|
||||
"unit_of_measure": "kilograms",
|
||||
"unit_price": 8.9,
|
||||
"line_total": 71.2,
|
||||
"received_quantity": 0.0,
|
||||
"remaining_quantity": 8.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,72 +1,620 @@
|
||||
{
|
||||
"sales_data": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000001",
|
||||
"id": "SALES-202501-2287",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"sale_date": "2025-01-14T10:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity_sold": 45.0,
|
||||
"unit_price": 2.5,
|
||||
"total_revenue": 112.5,
|
||||
"sales_channel": "IN_STORE",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Regular daily sales"
|
||||
"quantity": 51.11,
|
||||
"unit_price": 6.92,
|
||||
"total_amount": 335.29,
|
||||
"sales_date": "BASE_TS - 7d 4h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 7d 4h",
|
||||
"updated_at": "BASE_TS - 7d 4h"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000002",
|
||||
"id": "SALES-202501-1536",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 48.29,
|
||||
"unit_price": 3.81,
|
||||
"total_amount": 267.17,
|
||||
"sales_date": "BASE_TS - 7d 6h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 7d 6h",
|
||||
"updated_at": "BASE_TS - 7d 6h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-7360",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"sale_date": "2025-01-14T11:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity_sold": 10.0,
|
||||
"unit_price": 3.75,
|
||||
"total_revenue": 37.5,
|
||||
"sales_channel": "IN_STORE",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Morning croissant sales"
|
||||
"quantity": 28.45,
|
||||
"unit_price": 6.04,
|
||||
"total_amount": 209.32,
|
||||
"sales_date": "BASE_TS - 7d 3h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 7d 3h",
|
||||
"updated_at": "BASE_TS - 7d 3h"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000003",
|
||||
"id": "SALES-202501-2548",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 28.42,
|
||||
"unit_price": 3.79,
|
||||
"total_amount": 201.24,
|
||||
"sales_date": "BASE_TS - 7d 4h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 7d 4h",
|
||||
"updated_at": "BASE_TS - 7d 4h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-5636",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 25.07,
|
||||
"unit_price": 6.12,
|
||||
"total_amount": 184.07,
|
||||
"sales_date": "BASE_TS - 7d 4h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 7d 4h",
|
||||
"updated_at": "BASE_TS - 7d 4h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-6202",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 26.71,
|
||||
"unit_price": 2.97,
|
||||
"total_amount": 113.78,
|
||||
"sales_date": "BASE_TS - 6d 23h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 6d 23h",
|
||||
"updated_at": "BASE_TS - 6d 23h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-0751",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"sale_date": "2025-01-14T12:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity_sold": 8.0,
|
||||
"unit_price": 2.25,
|
||||
"total_revenue": 18.0,
|
||||
"sales_channel": "IN_STORE",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Lunch time bread sales"
|
||||
"quantity": 26.69,
|
||||
"unit_price": 6.47,
|
||||
"total_amount": 190.52,
|
||||
"sales_date": "BASE_TS - 6d 4h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 6d 4h",
|
||||
"updated_at": "BASE_TS - 6d 4h"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000004",
|
||||
"id": "SALES-202501-7429",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"sale_date": "2025-01-14T15:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"quantity_sold": 12.0,
|
||||
"unit_price": 1.75,
|
||||
"total_revenue": 21.0,
|
||||
"sales_channel": "IN_STORE",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Afternoon pastry sales"
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 29.68,
|
||||
"unit_price": 6.31,
|
||||
"total_amount": 139.19,
|
||||
"sales_date": "BASE_TS - 6d 7h",
|
||||
"sales_channel": "wholesale",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 6d 7h",
|
||||
"updated_at": "BASE_TS - 6d 7h"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000099",
|
||||
"id": "SALES-202501-1170",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 22.88,
|
||||
"unit_price": 6.15,
|
||||
"total_amount": 80.7,
|
||||
"sales_date": "BASE_TS - 6d 8h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 6d 8h",
|
||||
"updated_at": "BASE_TS - 6d 8h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-9126",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"sale_date": "2025-01-15T07:30:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity_sold": 25.0,
|
||||
"unit_price": 2.6,
|
||||
"total_revenue": 65.0,
|
||||
"sales_channel": "IN_STORE",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Early morning rush - higher price point",
|
||||
"reasoning_data": {
|
||||
"type": "peak_demand",
|
||||
"parameters": {
|
||||
"demand_factor": 1.2,
|
||||
"time_period": "morning_rush",
|
||||
"price_adjustment": 0.1
|
||||
}
|
||||
}
|
||||
"quantity": 32.61,
|
||||
"unit_price": 3.82,
|
||||
"total_amount": 144.97,
|
||||
"sales_date": "BASE_TS - 4d 23h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 4d 23h",
|
||||
"updated_at": "BASE_TS - 4d 23h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-6573",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 40.54,
|
||||
"unit_price": 4.11,
|
||||
"total_amount": 152.66,
|
||||
"sales_date": "BASE_TS - 5d 0h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 5d 0h",
|
||||
"updated_at": "BASE_TS - 5d 0h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-6483",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 33.25,
|
||||
"unit_price": 7.81,
|
||||
"total_amount": 211.39,
|
||||
"sales_date": "BASE_TS - 5d 1h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 5d 1h",
|
||||
"updated_at": "BASE_TS - 5d 1h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-9578",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 22.4,
|
||||
"unit_price": 5.07,
|
||||
"total_amount": 134.46,
|
||||
"sales_date": "BASE_TS - 5d 4h",
|
||||
"sales_channel": "wholesale",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 5d 4h",
|
||||
"updated_at": "BASE_TS - 5d 4h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-8086",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 26.22,
|
||||
"unit_price": 3.05,
|
||||
"total_amount": 72.96,
|
||||
"sales_date": "BASE_TS - 5d 5h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 5d 5h",
|
||||
"updated_at": "BASE_TS - 5d 5h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-6917",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 22.98,
|
||||
"unit_price": 6.08,
|
||||
"total_amount": 110.52,
|
||||
"sales_date": "BASE_TS - 5d 0h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 5d 0h",
|
||||
"updated_at": "BASE_TS - 5d 0h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-0189",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 22.12,
|
||||
"unit_price": 6.58,
|
||||
"total_amount": 70.51,
|
||||
"sales_date": "BASE_TS - 4d 23h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 4d 23h",
|
||||
"updated_at": "BASE_TS - 4d 23h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-7434",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 26.8,
|
||||
"unit_price": 2.52,
|
||||
"total_amount": 183.11,
|
||||
"sales_date": "BASE_TS - 4d 3h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 4d 3h",
|
||||
"updated_at": "BASE_TS - 4d 3h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-8318",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 37.72,
|
||||
"unit_price": 7.98,
|
||||
"total_amount": 291.3,
|
||||
"sales_date": "BASE_TS - 4d 0h",
|
||||
"sales_channel": "wholesale",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 4d 0h",
|
||||
"updated_at": "BASE_TS - 4d 0h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-6127",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 31.83,
|
||||
"unit_price": 7.08,
|
||||
"total_amount": 182.56,
|
||||
"sales_date": "BASE_TS - 4d 5h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 4d 5h",
|
||||
"updated_at": "BASE_TS - 4d 5h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-5039",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 15.31,
|
||||
"unit_price": 3.94,
|
||||
"total_amount": 60.42,
|
||||
"sales_date": "BASE_TS - 4d 2h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 4d 2h",
|
||||
"updated_at": "BASE_TS - 4d 2h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-1134",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 15.82,
|
||||
"unit_price": 8.37,
|
||||
"total_amount": 90.09,
|
||||
"sales_date": "BASE_TS - 4d 6h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 4d 6h",
|
||||
"updated_at": "BASE_TS - 4d 6h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-2706",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 20.17,
|
||||
"unit_price": 4.09,
|
||||
"total_amount": 156.0,
|
||||
"sales_date": "BASE_TS - 4d 2h",
|
||||
"sales_channel": "wholesale",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 4d 2h",
|
||||
"updated_at": "BASE_TS - 4d 2h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-6538",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 38.0,
|
||||
"unit_price": 8.47,
|
||||
"total_amount": 243.18,
|
||||
"sales_date": "BASE_TS - 3d 1h",
|
||||
"sales_channel": "wholesale",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 3d 1h",
|
||||
"updated_at": "BASE_TS - 3d 1h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-1050",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 34.63,
|
||||
"unit_price": 4.53,
|
||||
"total_amount": 208.83,
|
||||
"sales_date": "BASE_TS - 3d 5h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 3d 5h",
|
||||
"updated_at": "BASE_TS - 3d 5h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-0965",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 31.37,
|
||||
"unit_price": 3.87,
|
||||
"total_amount": 248.81,
|
||||
"sales_date": "BASE_TS - 3d 6h",
|
||||
"sales_channel": "wholesale",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 3d 6h",
|
||||
"updated_at": "BASE_TS - 3d 6h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-7954",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 35.52,
|
||||
"unit_price": 3.79,
|
||||
"total_amount": 116.99,
|
||||
"sales_date": "BASE_TS - 3d 4h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 3d 4h",
|
||||
"updated_at": "BASE_TS - 3d 4h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-1589",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"quantity": 27.73,
|
||||
"unit_price": 6.45,
|
||||
"total_amount": 128.29,
|
||||
"sales_date": "BASE_TS - 3d 5h",
|
||||
"sales_channel": "wholesale",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 3d 5h",
|
||||
"updated_at": "BASE_TS - 3d 5h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-1613",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"quantity": 28.29,
|
||||
"unit_price": 2.86,
|
||||
"total_amount": 194.33,
|
||||
"sales_date": "BASE_TS - 3d 7h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 3d 7h",
|
||||
"updated_at": "BASE_TS - 3d 7h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-2297",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"quantity": 21.65,
|
||||
"unit_price": 5.03,
|
||||
"total_amount": 90.3,
|
||||
"sales_date": "BASE_TS - 3d 3h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 3d 3h",
|
||||
"updated_at": "BASE_TS - 3d 3h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-8857",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 21.19,
|
||||
"unit_price": 7.52,
|
||||
"total_amount": 176.21,
|
||||
"sales_date": "BASE_TS - 2d 1h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 2d 1h",
|
||||
"updated_at": "BASE_TS - 2d 1h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-6571",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 24.31,
|
||||
"unit_price": 7.91,
|
||||
"total_amount": 84.79,
|
||||
"sales_date": "BASE_TS - 2d 2h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 2d 2h",
|
||||
"updated_at": "BASE_TS - 2d 2h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-7455",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 22.89,
|
||||
"unit_price": 4.21,
|
||||
"total_amount": 152.86,
|
||||
"sales_date": "BASE_TS - 2d 0h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 2d 0h",
|
||||
"updated_at": "BASE_TS - 2d 0h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-3112",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 26.89,
|
||||
"unit_price": 4.28,
|
||||
"total_amount": 223.54,
|
||||
"sales_date": "BASE_TS - 2d 2h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 2d 2h",
|
||||
"updated_at": "BASE_TS - 2d 2h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-7812",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 15.28,
|
||||
"unit_price": 5.52,
|
||||
"total_amount": 116.36,
|
||||
"sales_date": "BASE_TS - 2d 10h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 2d 10h",
|
||||
"updated_at": "BASE_TS - 2d 10h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-3045",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 19.55,
|
||||
"unit_price": 2.91,
|
||||
"total_amount": 56.85,
|
||||
"sales_date": "BASE_TS - 2d 9h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 2d 9h",
|
||||
"updated_at": "BASE_TS - 2d 9h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-4034",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 14.0,
|
||||
"unit_price": 5.97,
|
||||
"total_amount": 38.34,
|
||||
"sales_date": "BASE_TS - 2d 3h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 2d 3h",
|
||||
"updated_at": "BASE_TS - 2d 3h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-5184",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 17.55,
|
||||
"unit_price": 8.11,
|
||||
"total_amount": 65.38,
|
||||
"sales_date": "BASE_TS - 2d 5h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 2d 5h",
|
||||
"updated_at": "BASE_TS - 2d 5h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-7492",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 32.64,
|
||||
"unit_price": 4.4,
|
||||
"total_amount": 228.85,
|
||||
"sales_date": "BASE_TS - 1d 1h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 1d 1h",
|
||||
"updated_at": "BASE_TS - 1d 1h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-1639",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 37.66,
|
||||
"unit_price": 2.94,
|
||||
"total_amount": 142.3,
|
||||
"sales_date": "BASE_TS - 0d 23h",
|
||||
"sales_channel": "wholesale",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 0d 23h",
|
||||
"updated_at": "BASE_TS - 0d 23h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-4003",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 44.93,
|
||||
"unit_price": 4.72,
|
||||
"total_amount": 154.86,
|
||||
"sales_date": "BASE_TS - 0d 23h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 0d 23h",
|
||||
"updated_at": "BASE_TS - 0d 23h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-9087",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 27.58,
|
||||
"unit_price": 4.3,
|
||||
"total_amount": 178.72,
|
||||
"sales_date": "BASE_TS - 1d 1h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 1d 1h",
|
||||
"updated_at": "BASE_TS - 1d 1h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-9065",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 23.07,
|
||||
"unit_price": 3.43,
|
||||
"total_amount": 96.68,
|
||||
"sales_date": "BASE_TS - 1d 6h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "transfer",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 1d 6h",
|
||||
"updated_at": "BASE_TS - 1d 6h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-4326",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 25.55,
|
||||
"unit_price": 5.53,
|
||||
"total_amount": 102.37,
|
||||
"sales_date": "BASE_TS - 1d 1h",
|
||||
"sales_channel": "in_store",
|
||||
"payment_method": "cash",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 1d 1h",
|
||||
"updated_at": "BASE_TS - 1d 1h"
|
||||
},
|
||||
{
|
||||
"id": "SALES-202501-0723",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 28.73,
|
||||
"unit_price": 2.52,
|
||||
"total_amount": 204.74,
|
||||
"sales_date": "BASE_TS - 1d 0h",
|
||||
"sales_channel": "online",
|
||||
"payment_method": "card",
|
||||
"customer_id": "50000000-0000-0000-0000-000000000001",
|
||||
"created_at": "BASE_TS - 1d 0h",
|
||||
"updated_at": "BASE_TS - 1d 0h"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,152 +1,340 @@
|
||||
{
|
||||
"forecasts": [
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000001",
|
||||
"id": "559ad124-ce3f-4cfa-8f24-9ad447d8a236",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "BASE_TS + 18h",
|
||||
"predicted_quantity": 50.0,
|
||||
"confidence_score": 0.92,
|
||||
"forecast_horizon_days": 1,
|
||||
"forecast_date": "2025-01-16T06:00:00Z",
|
||||
"predicted_quantity": 22.91,
|
||||
"confidence_percentage": 90.8,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Regular daily demand forecast"
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 90.8% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000002",
|
||||
"id": "23e13d19-90d3-47ec-bac1-7f561041571f",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "BASE_TS + 18h",
|
||||
"predicted_quantity": 15.0,
|
||||
"confidence_score": 0.88,
|
||||
"forecast_horizon_days": 1,
|
||||
"forecast_date": "2025-01-16T06:00:00Z",
|
||||
"predicted_quantity": 21.23,
|
||||
"confidence_percentage": 91.8,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Croissant demand forecast"
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.8% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000003",
|
||||
"id": "02c052ae-b45d-4ec0-91f1-b140c22ee086",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"forecast_date": "BASE_TS + 18h",
|
||||
"predicted_quantity": 10.0,
|
||||
"confidence_score": 0.85,
|
||||
"forecast_horizon_days": 1,
|
||||
"forecast_date": "2025-01-16T06:00:00Z",
|
||||
"predicted_quantity": 18.65,
|
||||
"confidence_percentage": 88.1,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Country bread demand forecast"
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 88.1% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000099",
|
||||
"id": "7ea9daba-bced-44d5-9595-66e6a482154e",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"forecast_date": "2025-01-16T06:00:00Z",
|
||||
"predicted_quantity": 8.8,
|
||||
"confidence_percentage": 89.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 89.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "10bf8324-66a1-4776-b08c-5a55a3a86cb4",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "BASE_TS + 1d 18h",
|
||||
"predicted_quantity": 75.0,
|
||||
"confidence_score": 0.95,
|
||||
"forecast_horizon_days": 2,
|
||||
"forecast_date": "2025-01-17T06:00:00Z",
|
||||
"predicted_quantity": 20.16,
|
||||
"confidence_percentage": 91.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Weekend demand spike forecast",
|
||||
"reasoning_data": {
|
||||
"type": "demand_spike",
|
||||
"parameters": {
|
||||
"event_type": "weekend",
|
||||
"demand_increase_factor": 1.5,
|
||||
"historical_pattern": "weekend_spike"
|
||||
}
|
||||
}
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000100",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "BASE_TS + 2d 18h",
|
||||
"predicted_quantity": 60.0,
|
||||
"confidence_score": 0.92,
|
||||
"forecast_horizon_days": 3,
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Sunday demand forecast - slightly lower than Saturday",
|
||||
"historical_accuracy": 0.9
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000101",
|
||||
"id": "8133e0de-0431-4392-97ad-b5e0b385431a",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "BASE_TS + 18h",
|
||||
"predicted_quantity": 15.0,
|
||||
"confidence_score": 0.88,
|
||||
"forecast_horizon_days": 1,
|
||||
"forecast_date": "2025-01-17T06:00:00Z",
|
||||
"predicted_quantity": 26.32,
|
||||
"confidence_percentage": 89.4,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Croissant demand forecast - weekend preparation",
|
||||
"historical_accuracy": 0.89
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 89.4% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000102",
|
||||
"id": "4bc052cb-dae1-4f06-815e-d822e843ae5c",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"forecast_date": "2025-01-17T06:00:00Z",
|
||||
"predicted_quantity": 21.04,
|
||||
"confidence_percentage": 89.4,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 89.4% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "4d29380e-5ed4-466d-a421-1871149b0cf0",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"forecast_date": "2025-01-17T06:00:00Z",
|
||||
"predicted_quantity": 11.55,
|
||||
"confidence_percentage": 91.9,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.9% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "9794cffd-2bc6-4461-8ff6-f97bcb5ef94c",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "2025-01-18T06:00:00Z",
|
||||
"predicted_quantity": 38.56,
|
||||
"confidence_percentage": 88.9,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 88.9% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "e6e5f60e-ac4e-43dc-9ed5-0140f5e1eaef",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "BASE_TS + 1d 18h",
|
||||
"predicted_quantity": 25.0,
|
||||
"confidence_score": 0.9,
|
||||
"forecast_horizon_days": 2,
|
||||
"forecast_date": "2025-01-18T06:00:00Z",
|
||||
"predicted_quantity": 18.69,
|
||||
"confidence_percentage": 88.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Weekend croissant demand - higher than weekdays",
|
||||
"historical_accuracy": 0.91
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 88.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000103",
|
||||
"id": "57bbc0fb-14a4-4688-8ef8-f1bcf31b449e",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"forecast_date": "BASE_TS + 18h",
|
||||
"predicted_quantity": 10.0,
|
||||
"confidence_score": 0.85,
|
||||
"forecast_horizon_days": 1,
|
||||
"forecast_date": "2025-01-18T06:00:00Z",
|
||||
"predicted_quantity": 14.94,
|
||||
"confidence_percentage": 91.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Country bread demand forecast",
|
||||
"historical_accuracy": 0.88
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000104",
|
||||
"id": "a1b48396-f046-4a8c-bbbf-1c0c64da942b",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"forecast_date": "2025-01-18T06:00:00Z",
|
||||
"predicted_quantity": 12.55,
|
||||
"confidence_percentage": 90.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 90.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "c3a89c08-0382-41bc-9be6-cc0fe5822b63",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "2025-01-19T06:00:00Z",
|
||||
"predicted_quantity": 32.6,
|
||||
"confidence_percentage": 88.6,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 88.6% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "a7746915-f4bb-459f-9b11-7dd5cc161e19",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "2025-01-19T06:00:00Z",
|
||||
"predicted_quantity": 24.8,
|
||||
"confidence_percentage": 88.2,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 88.2% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "96731957-9727-424d-8227-3d1bf51800ca",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"forecast_date": "BASE_TS + 1d 18h",
|
||||
"predicted_quantity": 12.0,
|
||||
"confidence_score": 0.87,
|
||||
"forecast_horizon_days": 2,
|
||||
"forecast_date": "2025-01-19T06:00:00Z",
|
||||
"predicted_quantity": 15.83,
|
||||
"confidence_percentage": 91.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Weekend country bread demand",
|
||||
"historical_accuracy": 0.9
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000105",
|
||||
"id": "19737618-eb42-47c0-8ad4-7e37f913a78a",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "BASE_TS + 3d 18h",
|
||||
"predicted_quantity": 45.0,
|
||||
"confidence_score": 0.91,
|
||||
"forecast_horizon_days": 4,
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"forecast_date": "2025-01-19T06:00:00Z",
|
||||
"predicted_quantity": 9.15,
|
||||
"confidence_percentage": 91.5,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Monday demand - back to normal after weekend",
|
||||
"historical_accuracy": 0.92
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.5% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000106",
|
||||
"id": "b4c3b4ad-6487-49d5-9663-56046f577332",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "BASE_TS + 4d 18h",
|
||||
"predicted_quantity": 48.0,
|
||||
"confidence_score": 0.9,
|
||||
"forecast_horizon_days": 5,
|
||||
"forecast_date": "2025-01-20T06:00:00Z",
|
||||
"predicted_quantity": 25.4,
|
||||
"confidence_percentage": 89.6,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Tuesday demand forecast",
|
||||
"historical_accuracy": 0.9
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 89.6% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000000107",
|
||||
"id": "31b217eb-d71c-457a-8915-692dc701a6b9",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "2025-01-20T06:00:00Z",
|
||||
"predicted_quantity": 17.2,
|
||||
"confidence_percentage": 91.1,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.1% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "a32d777c-7052-4ba1-b55b-7cc0dc3cfc3d",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"forecast_date": "2025-01-20T06:00:00Z",
|
||||
"predicted_quantity": 15.3,
|
||||
"confidence_percentage": 90.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 90.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "2db7d1d2-7b38-4ebb-b408-c9e0b6884c22",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"forecast_date": "2025-01-20T06:00:00Z",
|
||||
"predicted_quantity": 12.89,
|
||||
"confidence_percentage": 88.1,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 88.1% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "b5887602-7f9c-485b-b50d-0e60dd153780",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "BASE_TS + 5d 18h",
|
||||
"predicted_quantity": 50.0,
|
||||
"confidence_score": 0.89,
|
||||
"forecast_horizon_days": 6,
|
||||
"forecast_date": "2025-01-21T06:00:00Z",
|
||||
"predicted_quantity": 35.39,
|
||||
"confidence_percentage": 90.3,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"notes": "Wednesday demand forecast",
|
||||
"historical_accuracy": 0.89
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 90.3% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "696498b2-20a7-48cb-a597-d689be7c729f",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "2025-01-21T06:00:00Z",
|
||||
"predicted_quantity": 26.46,
|
||||
"confidence_percentage": 90.4,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 90.4% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "b3c83939-52b7-4811-ac91-6fdc24d4ae0f",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"forecast_date": "2025-01-21T06:00:00Z",
|
||||
"predicted_quantity": 16.23,
|
||||
"confidence_percentage": 89.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 89.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "d3ca5707-9eee-4880-ac45-766f0e058492",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"forecast_date": "2025-01-21T06:00:00Z",
|
||||
"predicted_quantity": 13.47,
|
||||
"confidence_percentage": 91.6,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.6% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "0f67f70f-2d7e-43f2-b5dd-52659b06e578",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "2025-01-22T06:00:00Z",
|
||||
"predicted_quantity": 21.2,
|
||||
"confidence_percentage": 89.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 89.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "ba4bc024-6440-4fcf-b6c4-f1773aaa3f24",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "2025-01-22T06:00:00Z",
|
||||
"predicted_quantity": 24.48,
|
||||
"confidence_percentage": 90.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 90.7% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "cb6bfe90-1962-4ca1-b389-9d583780598d",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"forecast_date": "2025-01-22T06:00:00Z",
|
||||
"predicted_quantity": 25.48,
|
||||
"confidence_percentage": 88.8,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 88.8% (seed=42)"
|
||||
},
|
||||
{
|
||||
"id": "76c39f91-82cc-4bce-a91c-1e57e29e3461",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"forecast_date": "2025-01-22T06:00:00Z",
|
||||
"predicted_quantity": 10.32,
|
||||
"confidence_percentage": 91.7,
|
||||
"forecast_type": "daily",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS",
|
||||
"notes": "Forecast accuracy: 91.7% (seed=42)"
|
||||
}
|
||||
],
|
||||
"prediction_batches": [
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
"run_number": "ORCH-20250114-001",
|
||||
"status": "completed",
|
||||
"run_type": "daily",
|
||||
"started_at": "2025-01-14T22:00:00Z",
|
||||
"completed_at": "2025-01-14T22:15:00Z",
|
||||
"started_at": "BASE_TS - 1d 16h",
|
||||
"completed_at": "BASE_TS - 1d 15h45m",
|
||||
"duration_seconds": 900,
|
||||
"trigger_type": "scheduled",
|
||||
"trigger_source": "system",
|
||||
"created_at": "2025-01-14T22:00:00Z",
|
||||
"updated_at": "2025-01-14T22:15:00Z",
|
||||
"created_at": "BASE_TS - 1d 16h",
|
||||
"updated_at": "BASE_TS - 1d 15h45m",
|
||||
"notes": "Nightly orchestration run - Last successful execution before demo session"
|
||||
},
|
||||
"orchestration_results": {
|
||||
@@ -77,8 +77,8 @@
|
||||
"alert_type": "DELAYED_DELIVERY",
|
||||
"product_id": "10000000-0000-0000-0000-000000000001",
|
||||
"product_name": "Harina de Trigo T55",
|
||||
"expected_delivery": "2025-01-14T10:00:00Z",
|
||||
"actual_delivery": "2025-01-14T14:00:00Z",
|
||||
"expected_delivery": "BASE_TS - 1d 4h",
|
||||
"actual_delivery": "BASE_TS - 1d 8h",
|
||||
"delay_hours": 4,
|
||||
"severity": "CRITICAL",
|
||||
"related_po": "50000000-0000-0000-0000-000000000004",
|
||||
@@ -95,7 +95,7 @@
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"supplier_name": "Harinas del Norte",
|
||||
"status": "completed",
|
||||
"total_amount": 1053.50,
|
||||
"total_amount": 1053.5,
|
||||
"items_received": 3,
|
||||
"items_pending": 0,
|
||||
"delivery_status": "on_time"
|
||||
@@ -105,7 +105,7 @@
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000002",
|
||||
"supplier_name": "Lácteos Gipuzkoa",
|
||||
"status": "completed",
|
||||
"total_amount": 402.20,
|
||||
"total_amount": 402.2,
|
||||
"items_received": 1,
|
||||
"items_pending": 0,
|
||||
"delivery_status": "on_time"
|
||||
@@ -115,7 +115,7 @@
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"supplier_name": "Harinas del Norte",
|
||||
"status": "confirmed",
|
||||
"total_amount": 1427.00,
|
||||
"total_amount": 1427.0,
|
||||
"items_received": 0,
|
||||
"items_pending": 2,
|
||||
"delivery_status": "delayed",
|
||||
@@ -150,11 +150,46 @@
|
||||
"production_scheduling": 1
|
||||
},
|
||||
"system_state": {
|
||||
"last_successful_run": "2025-01-14T22:00:00Z",
|
||||
"next_scheduled_run": "2025-01-15T22:00:00Z",
|
||||
"last_successful_run": "BASE_TS - 1d 16h",
|
||||
"next_scheduled_run": "BASE_TS + 16h",
|
||||
"system_health": "healthy",
|
||||
"api_availability": 100.0,
|
||||
"database_performance": "optimal",
|
||||
"integration_status": "all_connected"
|
||||
}
|
||||
},
|
||||
"results": {
|
||||
"ingredients_created": 25,
|
||||
"stock_entries_created": 25,
|
||||
"batches_created": 0,
|
||||
"sales_created": 44,
|
||||
"forecasts_created": 28,
|
||||
"consumptions_calculated": 81,
|
||||
"critical_stock_items": 8,
|
||||
"active_alerts": 8,
|
||||
"forecasting_accuracy": 90.5,
|
||||
"cross_reference_errors": 0,
|
||||
"cross_reference_warnings": 0
|
||||
},
|
||||
"alerts": [
|
||||
{
|
||||
"alert_type": "OVERDUE_BATCH",
|
||||
"severity": "high",
|
||||
"message": "Production should have started 2 hours ago - BATCH-LATE-0001",
|
||||
"created_at": "BASE_TS"
|
||||
},
|
||||
{
|
||||
"alert_type": "DELAYED_DELIVERY",
|
||||
"severity": "high",
|
||||
"message": "Supplier delivery 4 hours late - PO-LATE-0001",
|
||||
"created_at": "BASE_TS"
|
||||
},
|
||||
{
|
||||
"alert_type": "CRITICAL_STOCK",
|
||||
"severity": "critical",
|
||||
"message": "Harina T55 below reorder point with NO pending PO",
|
||||
"created_at": "BASE_TS"
|
||||
}
|
||||
],
|
||||
"completed_at": "BASE_TS",
|
||||
"status": "completed"
|
||||
}
|
||||
@@ -1,118 +0,0 @@
|
||||
{
|
||||
"quality_controls": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000001",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"batch_id": "40000000-0000-0000-0000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"product_name": "Baguette Francesa Tradicional",
|
||||
"control_type": "visual_inspection",
|
||||
"control_date": "2025-01-08T14:30:00Z",
|
||||
"status": "COMPLETED",
|
||||
"result": "PASSED",
|
||||
"quality_score": 95.0,
|
||||
"inspected_by": "50000000-0000-0000-0000-000000000007",
|
||||
"notes": "Excelente aspecto y textura, 2 unidades con quemaduras leves (dentro de tolerancia)",
|
||||
"defects_found": [
|
||||
{
|
||||
"defect_type": "burnt",
|
||||
"quantity": 2.0,
|
||||
"severity": "minor"
|
||||
}
|
||||
],
|
||||
"corrective_actions": null,
|
||||
"created_at": "BASE_TS - 7d 8h 30m",
|
||||
"updated_at": "BASE_TS - 7d 8h 45m"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000002",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"batch_id": "40000000-0000-0000-0000-000000000002",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"product_name": "Croissant de Mantequilla Artesanal",
|
||||
"control_type": "dimensional_check",
|
||||
"control_date": "2025-01-08T14:45:00Z",
|
||||
"status": "COMPLETED",
|
||||
"result": "PASSED",
|
||||
"quality_score": 92.0,
|
||||
"inspected_by": "50000000-0000-0000-0000-000000000007",
|
||||
"notes": "Buen desarrollo y laminado, 3 unidades con forma irregular (dentro de tolerancia)",
|
||||
"defects_found": [
|
||||
{
|
||||
"defect_type": "misshapen",
|
||||
"quantity": 3.0,
|
||||
"severity": "minor"
|
||||
}
|
||||
],
|
||||
"corrective_actions": null,
|
||||
"created_at": "BASE_TS - 7d 8h 45m",
|
||||
"updated_at": "BASE_TS - 7d 9h"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000003",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"batch_id": "40000000-0000-0000-0000-000000000004",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"product_name": "Napolitana de Chocolate",
|
||||
"control_type": "taste_test",
|
||||
"control_date": "2025-01-09T14:30:00Z",
|
||||
"status": "COMPLETED",
|
||||
"result": "FAILED",
|
||||
"quality_score": 65.0,
|
||||
"inspected_by": "50000000-0000-0000-0000-000000000007",
|
||||
"notes": "⚠️ CRITICAL: Sabor amargo en el chocolate, posible problema con proveedor de cacao",
|
||||
"defects_found": [
|
||||
{
|
||||
"defect_type": "off_taste",
|
||||
"quantity": 10.0,
|
||||
"severity": "major"
|
||||
}
|
||||
],
|
||||
"corrective_actions": [
|
||||
"Lote puesto en cuarentena",
|
||||
"Notificado proveedor de chocolate",
|
||||
"Programada nueva prueba con muestra diferente"
|
||||
],
|
||||
"batch_status_after_control": "QUARANTINED",
|
||||
"created_at": "BASE_TS - 6d 8h 30m",
|
||||
"updated_at": "BASE_TS - 6d 9h"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000000004",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"batch_id": "40000000-0000-0000-0000-000000000015",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"product_name": "Baguette Francesa Tradicional",
|
||||
"control_type": "visual_inspection",
|
||||
"control_date": "BASE_TS + 0h",
|
||||
"status": "PENDING",
|
||||
"result": null,
|
||||
"quality_score": null,
|
||||
"inspected_by": null,
|
||||
"notes": "⚠️ PENDING: Control de calidad programado para lote en producción",
|
||||
"defects_found": null,
|
||||
"corrective_actions": null,
|
||||
"batch_status_after_control": "QUALITY_CHECK",
|
||||
"created_at": "BASE_TS",
|
||||
"updated_at": "BASE_TS"
|
||||
}
|
||||
],
|
||||
"quality_alerts": [
|
||||
{
|
||||
"id": "71000000-0000-0000-0000-000000000001",
|
||||
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
||||
"alert_type": "QUALITY_FAILURE",
|
||||
"severity": "HIGH",
|
||||
"status": "OPEN",
|
||||
"related_control_id": "70000000-0000-0000-0000-000000000003",
|
||||
"related_batch_id": "40000000-0000-0000-0000-000000000004",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"product_name": "Napolitana de Chocolate",
|
||||
"description": "Fallo crítico en control de calidad - Sabor amargo en chocolate",
|
||||
"created_at": "BASE_TS - 6d 9h",
|
||||
"acknowledged_at": "2025-01-09T15:15:00Z",
|
||||
"resolved_at": null,
|
||||
"notes": "Lote en cuarentena, investigación en curso con proveedor"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user