5270 lines
179 KiB
JSON
5270 lines
179 KiB
JSON
{
|
|
"equipment": [
|
|
{
|
|
"id": "30000000-0000-0000-0000-000000000001",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Horno Rotativo Principal",
|
|
"type": "oven",
|
|
"model": "Sveba Dahlen DC-16",
|
|
"serial_number": "SD-2023-1547",
|
|
"location": "Área de Producción - Zona A",
|
|
"manufacturer": null,
|
|
"firmware_version": null,
|
|
"status": "OPERATIONAL",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS",
|
|
"next_maintenance_date": "BASE_TS + 90d",
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": 92.0,
|
|
"uptime_percentage": 90.0,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": 45.0,
|
|
"capacity": 16.0,
|
|
"weight_kg": null,
|
|
"current_temperature": 220.0,
|
|
"target_temperature": 220.0,
|
|
"iot_enabled": false,
|
|
"iot_protocol": null,
|
|
"iot_endpoint": null,
|
|
"iot_port": null,
|
|
"iot_connection_status": null,
|
|
"iot_last_connected": null,
|
|
"supports_realtime": false,
|
|
"poll_interval_seconds": null,
|
|
"temperature_zones": null,
|
|
"supports_humidity": false,
|
|
"supports_energy_monitoring": false,
|
|
"supports_remote_control": false,
|
|
"is_active": true,
|
|
"notes": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "30000000-0000-0000-0000-000000000002",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Amasadora Espiral Grande",
|
|
"type": "mixer",
|
|
"model": "Diosna SP 120",
|
|
"serial_number": "DI-2022-0892",
|
|
"location": "Área de Amasado",
|
|
"manufacturer": null,
|
|
"firmware_version": null,
|
|
"status": "OPERATIONAL",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS",
|
|
"next_maintenance_date": "BASE_TS + 90d",
|
|
"maintenance_interval_days": 60,
|
|
"efficiency_percentage": 95.0,
|
|
"uptime_percentage": 90.0,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": 12.0,
|
|
"capacity": 120.0,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"iot_enabled": false,
|
|
"iot_protocol": null,
|
|
"iot_endpoint": null,
|
|
"iot_port": null,
|
|
"iot_connection_status": null,
|
|
"iot_last_connected": null,
|
|
"supports_realtime": false,
|
|
"poll_interval_seconds": null,
|
|
"temperature_zones": null,
|
|
"supports_humidity": false,
|
|
"supports_energy_monitoring": false,
|
|
"supports_remote_control": false,
|
|
"is_active": true,
|
|
"notes": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "30000000-0000-0000-0000-000000000003",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Cámara de Fermentación 1",
|
|
"type": "proofer",
|
|
"model": "Mondial Forni PF-2000",
|
|
"serial_number": "MF-2023-0445",
|
|
"location": "Área de Fermentación",
|
|
"manufacturer": null,
|
|
"firmware_version": null,
|
|
"status": "OPERATIONAL",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS",
|
|
"next_maintenance_date": "BASE_TS + 90d",
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": 88.0,
|
|
"uptime_percentage": 90.0,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": 8.0,
|
|
"capacity": 40.0,
|
|
"weight_kg": null,
|
|
"current_temperature": 28.0,
|
|
"target_temperature": 28.0,
|
|
"iot_enabled": false,
|
|
"iot_protocol": null,
|
|
"iot_endpoint": null,
|
|
"iot_port": null,
|
|
"iot_connection_status": null,
|
|
"iot_last_connected": null,
|
|
"supports_realtime": false,
|
|
"poll_interval_seconds": null,
|
|
"temperature_zones": null,
|
|
"supports_humidity": false,
|
|
"supports_energy_monitoring": false,
|
|
"supports_remote_control": false,
|
|
"is_active": true,
|
|
"notes": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "30000000-0000-0000-0000-000000000004",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Congelador Rápido",
|
|
"type": "freezer",
|
|
"model": "Irinox MF 70.2",
|
|
"serial_number": "IR-2021-1234",
|
|
"location": "Área de Conservación",
|
|
"manufacturer": null,
|
|
"firmware_version": null,
|
|
"status": "OPERATIONAL",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS",
|
|
"next_maintenance_date": "BASE_TS + 90d",
|
|
"maintenance_interval_days": 120,
|
|
"efficiency_percentage": 90.0,
|
|
"uptime_percentage": 90.0,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": 15.0,
|
|
"capacity": 70.0,
|
|
"weight_kg": null,
|
|
"current_temperature": -40.0,
|
|
"target_temperature": -40.0,
|
|
"iot_enabled": false,
|
|
"iot_protocol": null,
|
|
"iot_endpoint": null,
|
|
"iot_port": null,
|
|
"iot_connection_status": null,
|
|
"iot_last_connected": null,
|
|
"supports_realtime": false,
|
|
"poll_interval_seconds": null,
|
|
"temperature_zones": null,
|
|
"supports_humidity": false,
|
|
"supports_energy_monitoring": false,
|
|
"supports_remote_control": false,
|
|
"is_active": true,
|
|
"notes": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "30000000-0000-0000-0000-000000000005",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Amasadora Pequeña",
|
|
"type": "mixer",
|
|
"model": "Diosna SP 60",
|
|
"serial_number": "DI-2020-0334",
|
|
"location": "Área de Amasado",
|
|
"manufacturer": null,
|
|
"firmware_version": null,
|
|
"status": "WARNING",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS",
|
|
"next_maintenance_date": "BASE_TS + 90d",
|
|
"maintenance_interval_days": 60,
|
|
"efficiency_percentage": 78.0,
|
|
"uptime_percentage": 90.0,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": 6.0,
|
|
"capacity": 60.0,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"iot_enabled": false,
|
|
"iot_protocol": null,
|
|
"iot_endpoint": null,
|
|
"iot_port": null,
|
|
"iot_connection_status": null,
|
|
"iot_last_connected": null,
|
|
"supports_realtime": false,
|
|
"poll_interval_seconds": null,
|
|
"temperature_zones": null,
|
|
"supports_humidity": false,
|
|
"supports_energy_monitoring": false,
|
|
"supports_remote_control": false,
|
|
"is_active": true,
|
|
"notes": "Eficiencia reducida. Programar inspección preventiva.",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "30000000-0000-0000-0000-000000000006",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Horno de Convección Auxiliar",
|
|
"type": "oven",
|
|
"model": "Unox XBC 1065",
|
|
"serial_number": "UN-2019-0667",
|
|
"location": "Área de Producción - Zona B",
|
|
"manufacturer": null,
|
|
"firmware_version": null,
|
|
"status": "OPERATIONAL",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS",
|
|
"next_maintenance_date": "BASE_TS + 90d",
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": 85.0,
|
|
"uptime_percentage": 90.0,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": 28.0,
|
|
"capacity": 10.0,
|
|
"weight_kg": null,
|
|
"current_temperature": 180.0,
|
|
"target_temperature": 180.0,
|
|
"iot_enabled": false,
|
|
"iot_protocol": null,
|
|
"iot_endpoint": null,
|
|
"iot_port": null,
|
|
"iot_connection_status": null,
|
|
"iot_last_connected": null,
|
|
"supports_realtime": false,
|
|
"poll_interval_seconds": null,
|
|
"temperature_zones": null,
|
|
"supports_humidity": false,
|
|
"supports_energy_monitoring": false,
|
|
"supports_remote_control": false,
|
|
"is_active": true,
|
|
"notes": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
}
|
|
],
|
|
"batches": [
|
|
{
|
|
"id": "40000000-0000-0000-0000-0000000000b1",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-LATE-0001",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 2h",
|
|
"planned_end_time": "BASE_TS - 0h",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 120,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "HIGH",
|
|
"current_process_stage": null,
|
|
"process_stage_history": 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,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": true,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "⚠️ EDGE CASE: Production should have started 2 hours ago - will trigger OVERDUE_BATCH alert",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-0000000000b2",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-INPROGRESS-0001",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 1h",
|
|
"planned_end_time": "BASE_TS + 1h",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 120,
|
|
"actual_start_time": "BASE_TS - 1h45m",
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "IN_PROGRESS",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "baking",
|
|
"process_stage_history": [
|
|
{
|
|
"stage": "preparation",
|
|
"start_time": "BASE_TS - 2h",
|
|
"end_time": "BASE_TS - 1h45m",
|
|
"status": "completed"
|
|
}
|
|
],
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "⚠️ EDGE CASE: Batch started 15 minutes late but now in progress - will show active production status",
|
|
"quality_notes": null,
|
|
"delay_reason": "Equipment setup delay",
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-0000000000b3",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-UPCOMING-0001",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS + 1h30m",
|
|
"planned_end_time": "BASE_TS + 4h30m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "⚠️ EDGE CASE: Upcoming batch scheduled to start in 1.5 hours - will show in planning view",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000001",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250115-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 7d 6h",
|
|
"planned_end_time": "BASE_TS - 7d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 7d 6h",
|
|
"actual_end_time": "BASE_TS - 7d 8h 45m",
|
|
"actual_quantity": 98.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_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": 9.5,
|
|
"waste_quantity": 2.0,
|
|
"defect_quantity": 2.0,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Producción estándar, sin incidencias",
|
|
"quality_notes": "2 baguettes quemadas por exceso de temperatura",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000002",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250115-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 7d 5h",
|
|
"planned_end_time": "BASE_TS - 7d 9h",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 7d 5h",
|
|
"actual_end_time": "BASE_TS - 7d 9h",
|
|
"actual_quantity": 115.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "HIGH",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_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": 9.2,
|
|
"waste_quantity": 3.0,
|
|
"defect_quantity": 3.0,
|
|
"waste_defect_type": "misshapen",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002",
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Laminado perfecto, buen desarrollo",
|
|
"quality_notes": "3 croissants con forma irregular por laminado desigual, 2 descartados",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000003",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250116-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan de Pueblo con Masa Madre",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 6d 7h 30m",
|
|
"planned_end_time": "BASE_TS - 6d 12h 30m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 300,
|
|
"actual_start_time": "BASE_TS - 6d 7h 30m",
|
|
"actual_end_time": "BASE_TS - 6d 12h 30m",
|
|
"actual_quantity": 80.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 200.0,
|
|
"actual_cost": 195.0,
|
|
"labor_cost": 90.0,
|
|
"material_cost": 80.0,
|
|
"overhead_cost": 25.0,
|
|
"yield_percentage": 100.0,
|
|
"quality_score": 98.0,
|
|
"waste_quantity": 0.0,
|
|
"defect_quantity": 0.0,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": true,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Excelente fermentación de la masa madre",
|
|
"quality_notes": "Batch perfecto, sin desperdicio",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000004",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250116-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 6d 6h",
|
|
"planned_end_time": "BASE_TS - 6d 9h",
|
|
"planned_quantity": 90.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 6d 6h",
|
|
"actual_end_time": "BASE_TS - 6d 9h",
|
|
"actual_quantity": 88.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "QUARANTINED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "quality_check",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000000-0000-0000-0000-000000000003",
|
|
"check_type": "taste_test",
|
|
"status": "completed",
|
|
"result": "failed",
|
|
"quality_score": 6.5
|
|
}
|
|
],
|
|
"estimated_cost": 220.0,
|
|
"actual_cost": 218.0,
|
|
"labor_cost": 95.0,
|
|
"material_cost": 98.0,
|
|
"overhead_cost": 25.0,
|
|
"yield_percentage": 97.8,
|
|
"quality_score": 6.5,
|
|
"waste_quantity": 1.0,
|
|
"defect_quantity": 10.0,
|
|
"waste_defect_type": "off_taste",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001",
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "⚠️ CRITICAL: Lote en cuarentena por fallo en control de calidad",
|
|
"quality_notes": "Sabor amargo en chocolate - Investigación en curso con proveedor",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000005",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250117-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 5d 6h",
|
|
"planned_end_time": "BASE_TS - 5d 8h 45m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 5d 6h",
|
|
"actual_end_time": "BASE_TS - 5d 8h 45m",
|
|
"actual_quantity": 118.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "HIGH",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 180.0,
|
|
"actual_cost": 177.0,
|
|
"labor_cost": 95.0,
|
|
"material_cost": 65.0,
|
|
"overhead_cost": 17.0,
|
|
"yield_percentage": 98.3,
|
|
"quality_score": 96.0,
|
|
"waste_quantity": 1.5,
|
|
"defect_quantity": 0.5,
|
|
"waste_defect_type": "underproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Lote grande para pedido especial",
|
|
"quality_notes": "1.5kg por fermentación insuficiente",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000006",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250117-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 5d 5h",
|
|
"planned_end_time": "BASE_TS - 5d 9h",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 5d 5h",
|
|
"actual_end_time": "BASE_TS - 5d 9h",
|
|
"actual_quantity": 96.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 240.0,
|
|
"actual_cost": 238.0,
|
|
"labor_cost": 105.0,
|
|
"material_cost": 105.0,
|
|
"overhead_cost": 28.0,
|
|
"yield_percentage": 96.0,
|
|
"quality_score": 90.0,
|
|
"waste_quantity": 2.0,
|
|
"defect_quantity": 2.0,
|
|
"waste_defect_type": "temperature_issues",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002",
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Algunos croissants con desarrollo irregular",
|
|
"quality_notes": "2kg descartados por problemas de temperatura en fermentación",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000007",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250118-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 4d 6h",
|
|
"planned_end_time": "BASE_TS - 4d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 4d 6h",
|
|
"actual_end_time": "BASE_TS - 4d 8h 45m",
|
|
"actual_quantity": 99.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 149.0,
|
|
"labor_cost": 80.0,
|
|
"material_cost": 55.0,
|
|
"overhead_cost": 14.0,
|
|
"yield_percentage": 99.0,
|
|
"quality_score": 97.0,
|
|
"waste_quantity": 1.0,
|
|
"defect_quantity": 0.0,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Excelente resultado",
|
|
"quality_notes": "1kg quemado por ajuste de horno",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000008",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250118-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan de Pueblo con Masa Madre",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 4d 7h",
|
|
"planned_end_time": "BASE_TS - 4d 12h",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 300,
|
|
"actual_start_time": "BASE_TS - 4d 7h",
|
|
"actual_end_time": "BASE_TS - 4d 12h",
|
|
"actual_quantity": 60.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "LOW",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 155.0,
|
|
"actual_cost": 152.0,
|
|
"labor_cost": 70.0,
|
|
"material_cost": 65.0,
|
|
"overhead_cost": 17.0,
|
|
"yield_percentage": 100.0,
|
|
"quality_score": 99.0,
|
|
"waste_quantity": 0.0,
|
|
"defect_quantity": 0.0,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": true,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Masa madre en punto óptimo",
|
|
"quality_notes": "Batch perfecto, sin desperdicios",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000009",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250119-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 3d 5h",
|
|
"planned_end_time": "BASE_TS - 3d 9h",
|
|
"planned_quantity": 150.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 3d 5h",
|
|
"actual_end_time": "BASE_TS - 3d 9h",
|
|
"actual_quantity": 145.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "URGENT",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 350.0,
|
|
"actual_cost": 345.0,
|
|
"labor_cost": 150.0,
|
|
"material_cost": 155.0,
|
|
"overhead_cost": 40.0,
|
|
"yield_percentage": 96.7,
|
|
"quality_score": 93.0,
|
|
"waste_quantity": 3.0,
|
|
"defect_quantity": 2.0,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002",
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": true,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Pedido urgente de evento corporativo",
|
|
"quality_notes": "3kg quemados por presión de tiempo, 2kg descartados",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000010",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250119-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 3d 6h 30m",
|
|
"planned_end_time": "BASE_TS - 3d 9h 30m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 3d 6h 30m",
|
|
"actual_end_time": "BASE_TS - 3d 9h 30m",
|
|
"actual_quantity": 79.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 195.0,
|
|
"actual_cost": 192.0,
|
|
"labor_cost": 85.0,
|
|
"material_cost": 85.0,
|
|
"overhead_cost": 22.0,
|
|
"yield_percentage": 98.8,
|
|
"quality_score": 95.0,
|
|
"waste_quantity": 0.5,
|
|
"defect_quantity": 0.5,
|
|
"waste_defect_type": "misshapen",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Buen resultado general",
|
|
"quality_notes": "0.5kg con forma irregular, descartados",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000011",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250120-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 2d 6h",
|
|
"planned_end_time": "BASE_TS - 2d 8h 45m",
|
|
"planned_quantity": 110.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 2d 6h",
|
|
"actual_end_time": "BASE_TS - 2d 8h 45m",
|
|
"actual_quantity": 108.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 165.0,
|
|
"actual_cost": 162.0,
|
|
"labor_cost": 88.0,
|
|
"material_cost": 60.0,
|
|
"overhead_cost": 14.0,
|
|
"yield_percentage": 98.2,
|
|
"quality_score": 96.0,
|
|
"waste_quantity": 1.5,
|
|
"defect_quantity": 0.5,
|
|
"waste_defect_type": "underproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Producción estándar",
|
|
"quality_notes": "1.5kg con fermentación insuficiente, 0.5kg descartados",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000012",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250120-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan de Pueblo con Masa Madre",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 2d 7h 30m",
|
|
"planned_end_time": "BASE_TS - 2d 12h 30m",
|
|
"planned_quantity": 70.0,
|
|
"planned_duration_minutes": 300,
|
|
"actual_start_time": "BASE_TS - 2d 7h 30m",
|
|
"actual_end_time": "BASE_TS - 2d 12h 30m",
|
|
"actual_quantity": 70.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 175.0,
|
|
"actual_cost": 172.0,
|
|
"labor_cost": 80.0,
|
|
"material_cost": 72.0,
|
|
"overhead_cost": 20.0,
|
|
"yield_percentage": 100.0,
|
|
"quality_score": 98.0,
|
|
"waste_quantity": 0.0,
|
|
"defect_quantity": 0.0,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": true,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Fermentación perfecta",
|
|
"quality_notes": "Batch perfecto, optimizado por IA",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000013",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250121-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 1d 5h",
|
|
"planned_end_time": "BASE_TS - 1d 9h",
|
|
"planned_quantity": 130.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 1d 5h",
|
|
"actual_end_time": "BASE_TS - 1d 9h",
|
|
"actual_quantity": 125.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "HIGH",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 310.0,
|
|
"actual_cost": 305.0,
|
|
"labor_cost": 135.0,
|
|
"material_cost": 138.0,
|
|
"overhead_cost": 32.0,
|
|
"yield_percentage": 96.2,
|
|
"quality_score": 94.0,
|
|
"waste_quantity": 3.0,
|
|
"defect_quantity": 2.0,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002",
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Demanda elevada del fin de semana",
|
|
"quality_notes": "3kg quemados por sobrecarga de horno, 2kg descartados",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000014",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250121-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 1d 6h 30m",
|
|
"planned_end_time": "BASE_TS - 1d 9h 15m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 1d 6h 30m",
|
|
"actual_end_time": "BASE_TS - 1d 9h 15m",
|
|
"actual_quantity": 118.0,
|
|
"actual_duration_minutes": null,
|
|
"status": "COMPLETED",
|
|
"priority": "HIGH",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 180.0,
|
|
"actual_cost": 178.0,
|
|
"labor_cost": 95.0,
|
|
"material_cost": 66.0,
|
|
"overhead_cost": 17.0,
|
|
"yield_percentage": 98.3,
|
|
"quality_score": 97.0,
|
|
"waste_quantity": 1.5,
|
|
"defect_quantity": 0.5,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Alta demanda de fin de semana",
|
|
"quality_notes": "1.5kg ligeramente quemados, 0.5kg descartados",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000015",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250122-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS + 6h",
|
|
"planned_end_time": "BASE_TS + 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS + 6h",
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "IN_PROGRESS",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "baking",
|
|
"process_stage_history": 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,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Producción en curso con predicción de IA",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000016",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250122-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS + 8h",
|
|
"planned_end_time": "BASE_TS + 12h",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 240.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002",
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Pendiente de inicio - cantidad optimizada por IA",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000017",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250123-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan de Pueblo con Masa Madre",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS + 1d 7h",
|
|
"planned_end_time": "BASE_TS + 1d 12h",
|
|
"planned_quantity": 75.0,
|
|
"planned_duration_minutes": 300,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 185.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": true,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Planificado para mañana con predicción de demanda IA",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000018",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-20250123-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS + 1d 6h",
|
|
"planned_end_time": "BASE_TS + 1d 9h",
|
|
"planned_quantity": 85.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "LOW",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 210.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Planificado para mañana",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-999999999001",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-TODAY-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS + 6h",
|
|
"planned_end_time": "BASE_TS + 10h",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "HIGH",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 280.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002",
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Lote programado para hoy - Demanda prevista alta",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-999999999002",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-TODAY-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS + 8h 30m",
|
|
"planned_end_time": "BASE_TS + 11h 15m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Producción diaria programada",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-999999999003",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-TODAY-003",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan de Pueblo con Masa Madre",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS + 10h",
|
|
"planned_end_time": "BASE_TS + 15h",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 300,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 180.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": true,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Masa madre preparada ayer - Listo para horneado",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-0000000000a1",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-CHOCOLATE-CAKE-EVENING",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Tarta de Chocolate Premium",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS + 17h",
|
|
"planned_end_time": "BASE_TS + 20h",
|
|
"planned_quantity": 5.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "HIGH",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 380.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": true,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "⚠️ DASHBOARD: Scheduled in 5 hours but missing 3kg dark chocolate (CHO-NEG-001) - Will trigger BATCH_AT_RISK alert",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-0000000000a2",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-CROISSANTS-TOMORROW",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS + 1d 5h",
|
|
"planned_end_time": "BASE_TS + 1d 9h",
|
|
"planned_quantity": 150.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "HIGH",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 420.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002",
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "⚠️ DASHBOARD: Tomorrow morning batch - Depends on yeast (LEV-SEC-001) and butter (MAN-SAL-001) - Coordinates with PO approval escalation scenario",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-0000000000a3",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-BAGUETTES-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS + 14h",
|
|
"planned_end_time": "BASE_TS + 16h 45m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": null,
|
|
"actual_end_time": null,
|
|
"actual_quantity": null,
|
|
"actual_duration_minutes": null,
|
|
"status": "PENDING",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": null,
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": null,
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": null,
|
|
"labor_cost": null,
|
|
"material_cost": null,
|
|
"overhead_cost": null,
|
|
"yield_percentage": null,
|
|
"quality_score": null,
|
|
"waste_quantity": null,
|
|
"defect_quantity": null,
|
|
"waste_defect_type": null,
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "⚠️ DASHBOARD: At risk due to flour (HAR-T55-001) running low - Will be affected if delivery is late",
|
|
"quality_notes": null,
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": null
|
|
},
|
|
{
|
|
"id": "bc82988e-e27e-5ad8-be4f-6eee92e681e5",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-000D-000",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 90d 6h",
|
|
"planned_end_time": "BASE_TS - 90d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 90d 6h",
|
|
"actual_end_time": "BASE_TS - 90d 8h 45m",
|
|
"actual_quantity": 80.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000000-0000-0000-0000-000000000000",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.0
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 120.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 80.0,
|
|
"quality_score": 9.0,
|
|
"waste_quantity": 20.0,
|
|
"defect_quantity": 6.0,
|
|
"waste_defect_type": "overproduction_expired",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Baseline period: AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 20.0kg (overproduction_expired), Defects: 6.0kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 90d 8h 45m"
|
|
},
|
|
{
|
|
"id": "4df298ca-c18b-5452-a4bf-1baca9c9ae5d",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-003D-001",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 87d 6h",
|
|
"planned_end_time": "BASE_TS - 87d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 87d 6h",
|
|
"actual_end_time": "BASE_TS - 87d 10h 0m",
|
|
"actual_quantity": 94.8,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000001-0000-0000-0000-000000000001",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.1
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 94.8,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 79.0,
|
|
"quality_score": 9.1,
|
|
"waste_quantity": 25.2,
|
|
"defect_quantity": 7.56,
|
|
"waste_defect_type": "undercooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Baseline period: AI temperature control - reduced defects",
|
|
"quality_notes": "Waste: 25.2kg (undercooked), Defects: 7.56kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 87d 10h 0m"
|
|
},
|
|
{
|
|
"id": "e2b2e615-5aca-5af8-8962-2fe393f58722",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-006D-002",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 84d 6h",
|
|
"planned_end_time": "BASE_TS - 84d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 84d 6h",
|
|
"actual_end_time": "BASE_TS - 84d 9h 0m",
|
|
"actual_quantity": 46.8,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000002-0000-0000-0000-000000000002",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.2
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 70.2,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 78.0,
|
|
"quality_score": 9.2,
|
|
"waste_quantity": 13.2,
|
|
"defect_quantity": 3.96,
|
|
"waste_defect_type": "overcooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Baseline period: AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 13.2kg (overcooked), Defects: 3.96kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 84d 9h 0m"
|
|
},
|
|
{
|
|
"id": "7bfb7709-9e52-5f82-b6b5-2ee25113ef3c",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-009D-003",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 81d 6h",
|
|
"planned_end_time": "BASE_TS - 81d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 81d 6h",
|
|
"actual_end_time": "BASE_TS - 81d 9h 20m",
|
|
"actual_quantity": 58.4,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000003-0000-0000-0000-000000000003",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.3
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 73.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 73.0,
|
|
"quality_score": 8.3,
|
|
"waste_quantity": 21.6,
|
|
"defect_quantity": 6.48,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Baseline period: Manual temperature control",
|
|
"quality_notes": "Waste: 21.6kg (burnt), Defects: 6.48kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 81d 9h 20m"
|
|
},
|
|
{
|
|
"id": "bb55752e-2455-5805-8bc1-e5836d1d2088",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-012D-004",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 78d 6h",
|
|
"planned_end_time": "BASE_TS - 78d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 78d 6h",
|
|
"actual_end_time": "BASE_TS - 78d 8h 45m",
|
|
"actual_quantity": 72.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000004-0000-0000-0000-000000000004",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.4
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 108.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 72.0,
|
|
"quality_score": 8.4,
|
|
"waste_quantity": 28.0,
|
|
"defect_quantity": 8.4,
|
|
"waste_defect_type": "overproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Baseline period: Standard batch production",
|
|
"quality_notes": "Waste: 28.0kg (overproofed), Defects: 8.4kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 78d 8h 45m"
|
|
},
|
|
{
|
|
"id": "919a4ce4-4553-54d6-ba59-52f19cc801d0",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-015D-005",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 75d 6h",
|
|
"planned_end_time": "BASE_TS - 75d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 75d 6h",
|
|
"actual_end_time": "BASE_TS - 75d 10h 0m",
|
|
"actual_quantity": 85.2,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000005-0000-0000-0000-000000000005",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.5
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 85.2,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 71.0,
|
|
"quality_score": 8.5,
|
|
"waste_quantity": 34.8,
|
|
"defect_quantity": 10.44,
|
|
"waste_defect_type": "underproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Baseline period: Manual planning - slight overproduction",
|
|
"quality_notes": "Waste: 34.8kg (underproofed), Defects: 10.44kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 75d 10h 0m"
|
|
},
|
|
{
|
|
"id": "ba2edbca-ac99-55e0-a664-6851680eb936",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-018D-006",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 72d 6h",
|
|
"planned_end_time": "BASE_TS - 72d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 72d 6h",
|
|
"actual_end_time": "BASE_TS - 72d 9h 0m",
|
|
"actual_quantity": 42.0,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000006-0000-0000-0000-000000000006",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.6
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 63.0,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 70.0,
|
|
"quality_score": 8.6,
|
|
"waste_quantity": 18.0,
|
|
"defect_quantity": 5.4,
|
|
"waste_defect_type": "shape_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Baseline period: Standard recipe - acceptable waste",
|
|
"quality_notes": "Waste: 18.0kg (shape_defects), Defects: 5.4kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 72d 9h 0m"
|
|
},
|
|
{
|
|
"id": "ba96dfa8-b961-529e-b23d-ccbb7585e944",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-021D-007",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 69d 6h",
|
|
"planned_end_time": "BASE_TS - 69d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 69d 6h",
|
|
"actual_end_time": "BASE_TS - 69d 9h 20m",
|
|
"actual_quantity": 60.8,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000007-0000-0000-0000-000000000007",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.7
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 76.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 76.0,
|
|
"quality_score": 8.7,
|
|
"waste_quantity": 19.2,
|
|
"defect_quantity": 5.76,
|
|
"waste_defect_type": "quality_control_fail",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Baseline period: Traditional process - normal variation",
|
|
"quality_notes": "Waste: 19.2kg (quality_control_fail), Defects: 5.76kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 69d 9h 20m"
|
|
},
|
|
{
|
|
"id": "aeb566d5-026c-5e13-be59-ba24c29eb663",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-024D-008",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 66d 6h",
|
|
"planned_end_time": "BASE_TS - 66d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 66d 6h",
|
|
"actual_end_time": "BASE_TS - 66d 8h 45m",
|
|
"actual_quantity": 75.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000008-0000-0000-0000-000000000008",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.8
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 112.5,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 75.0,
|
|
"quality_score": 8.8,
|
|
"waste_quantity": 25.0,
|
|
"defect_quantity": 7.5,
|
|
"waste_defect_type": "equipment_malfunction",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Baseline period: Manual temperature control",
|
|
"quality_notes": "Waste: 25.0kg (equipment_malfunction), Defects: 7.5kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 66d 8h 45m"
|
|
},
|
|
{
|
|
"id": "efc5bb44-18aa-521c-befa-bd6a60dcf36a",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-027D-009",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 63d 6h",
|
|
"planned_end_time": "BASE_TS - 63d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 63d 6h",
|
|
"actual_end_time": "BASE_TS - 63d 10h 0m",
|
|
"actual_quantity": 88.8,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000009-0000-0000-0000-000000000009",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.9
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 88.8,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 74.0,
|
|
"quality_score": 8.9,
|
|
"waste_quantity": 31.2,
|
|
"defect_quantity": 9.36,
|
|
"waste_defect_type": "minor_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Baseline period: Standard batch production",
|
|
"quality_notes": "Waste: 31.2kg (minor_defects), Defects: 9.36kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 63d 10h 0m"
|
|
},
|
|
{
|
|
"id": "450ca5a7-2137-55c3-b676-9efa0080aad6",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-030D-010",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 60d 6h",
|
|
"planned_end_time": "BASE_TS - 60d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 60d 6h",
|
|
"actual_end_time": "BASE_TS - 60d 9h 0m",
|
|
"actual_quantity": 55.2,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000010-0000-0000-0000-000000000010",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.0
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 82.8,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 92.0,
|
|
"quality_score": 9.0,
|
|
"waste_quantity": 4.8,
|
|
"defect_quantity": 1.44,
|
|
"waste_defect_type": "overproduction_expired",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 4.8kg (overproduction_expired), Defects: 1.44kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 60d 9h 0m"
|
|
},
|
|
{
|
|
"id": "f60a7d15-5205-5b3d-b9bd-836c7be66db6",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-032D-011",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 58d 6h",
|
|
"planned_end_time": "BASE_TS - 58d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 58d 6h",
|
|
"actual_end_time": "BASE_TS - 58d 9h 20m",
|
|
"actual_quantity": 64.8,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000011-0000-0000-0000-000000000011",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.1
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 81.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 81.0,
|
|
"quality_score": 8.1,
|
|
"waste_quantity": 15.2,
|
|
"defect_quantity": 4.56,
|
|
"waste_defect_type": "undercooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard recipe - acceptable waste",
|
|
"quality_notes": "Waste: 15.2kg (undercooked), Defects: 4.56kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 58d 9h 20m"
|
|
},
|
|
{
|
|
"id": "b74207a6-887e-57cf-9797-341ea6e3f9e6",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-034D-012",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 56d 6h",
|
|
"planned_end_time": "BASE_TS - 56d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 56d 6h",
|
|
"actual_end_time": "BASE_TS - 56d 8h 45m",
|
|
"actual_quantity": 90.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000012-0000-0000-0000-000000000012",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.2
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 135.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 90.0,
|
|
"quality_score": 9.2,
|
|
"waste_quantity": 10.0,
|
|
"defect_quantity": 3.0,
|
|
"waste_defect_type": "overcooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 10.0kg (overcooked), Defects: 3.0kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 56d 8h 45m"
|
|
},
|
|
{
|
|
"id": "95a2f070-9440-5e52-a79a-cd8a6f7052b6",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-036D-013",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 54d 6h",
|
|
"planned_end_time": "BASE_TS - 54d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 54d 6h",
|
|
"actual_end_time": "BASE_TS - 54d 10h 0m",
|
|
"actual_quantity": 94.8,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000013-0000-0000-0000-000000000013",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.3
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 94.8,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 79.0,
|
|
"quality_score": 8.3,
|
|
"waste_quantity": 25.2,
|
|
"defect_quantity": 7.56,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual temperature control",
|
|
"quality_notes": "Waste: 25.2kg (burnt), Defects: 7.56kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 54d 10h 0m"
|
|
},
|
|
{
|
|
"id": "43c7ae43-3437-50b4-bbff-108eb880676d",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-038D-014",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 52d 6h",
|
|
"planned_end_time": "BASE_TS - 52d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 52d 6h",
|
|
"actual_end_time": "BASE_TS - 52d 9h 0m",
|
|
"actual_quantity": 52.8,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000014-0000-0000-0000-000000000014",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.4
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 79.2,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 88.0,
|
|
"quality_score": 9.4,
|
|
"waste_quantity": 7.2,
|
|
"defect_quantity": 2.16,
|
|
"waste_defect_type": "overproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI quality prediction - early intervention",
|
|
"quality_notes": "Waste: 7.2kg (overproofed), Defects: 2.16kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 52d 9h 0m"
|
|
},
|
|
{
|
|
"id": "e818d879-c957-5d75-aeaf-0b6fdc20783e",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-040D-015",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 50d 6h",
|
|
"planned_end_time": "BASE_TS - 50d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 50d 6h",
|
|
"actual_end_time": "BASE_TS - 50d 9h 20m",
|
|
"actual_quantity": 61.6,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000015-0000-0000-0000-000000000015",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.5
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 77.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 77.0,
|
|
"quality_score": 8.5,
|
|
"waste_quantity": 18.4,
|
|
"defect_quantity": 5.52,
|
|
"waste_defect_type": "underproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual planning - slight overproduction",
|
|
"quality_notes": "Waste: 18.4kg (underproofed), Defects: 5.52kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 50d 9h 20m"
|
|
},
|
|
{
|
|
"id": "db904cdc-b545-5298-9450-4e78c3388565",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-042D-016",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 48d 6h",
|
|
"planned_end_time": "BASE_TS - 48d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 48d 6h",
|
|
"actual_end_time": "BASE_TS - 48d 8h 45m",
|
|
"actual_quantity": 91.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000016-0000-0000-0000-000000000016",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.6
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 136.5,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 91.0,
|
|
"quality_score": 9.6,
|
|
"waste_quantity": 9.0,
|
|
"defect_quantity": 2.7,
|
|
"waste_defect_type": "shape_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI temperature control - reduced defects",
|
|
"quality_notes": "Waste: 9.0kg (shape_defects), Defects: 2.7kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 48d 8h 45m"
|
|
},
|
|
{
|
|
"id": "07b4af0a-982a-5715-9092-5179ebc8feba",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-044D-017",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 46d 6h",
|
|
"planned_end_time": "BASE_TS - 46d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 46d 6h",
|
|
"actual_end_time": "BASE_TS - 46d 10h 0m",
|
|
"actual_quantity": 90.0,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000017-0000-0000-0000-000000000017",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.7
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 90.0,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 75.0,
|
|
"quality_score": 8.7,
|
|
"waste_quantity": 30.0,
|
|
"defect_quantity": 9.0,
|
|
"waste_defect_type": "quality_control_fail",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Traditional process - normal variation",
|
|
"quality_notes": "Waste: 30.0kg (quality_control_fail), Defects: 9.0kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 46d 10h 0m"
|
|
},
|
|
{
|
|
"id": "6ab89188-5ab0-59d2-87c2-967b7e7eaafa",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-046D-018",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 44d 6h",
|
|
"planned_end_time": "BASE_TS - 44d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 44d 6h",
|
|
"actual_end_time": "BASE_TS - 44d 9h 0m",
|
|
"actual_quantity": 53.4,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000018-0000-0000-0000-000000000018",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.8
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 80.1,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 89.0,
|
|
"quality_score": 9.8,
|
|
"waste_quantity": 6.6,
|
|
"defect_quantity": 1.98,
|
|
"waste_defect_type": "equipment_malfunction",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "Smart planning prevented overproduction",
|
|
"quality_notes": "Waste: 6.6kg (equipment_malfunction), Defects: 1.98kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 44d 9h 0m"
|
|
},
|
|
{
|
|
"id": "58530d39-0a1b-53bc-9316-39d2a015ac50",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-048D-019",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 42d 6h",
|
|
"planned_end_time": "BASE_TS - 42d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 42d 6h",
|
|
"actual_end_time": "BASE_TS - 42d 9h 20m",
|
|
"actual_quantity": 58.4,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000019-0000-0000-0000-000000000019",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.9
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 73.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 73.0,
|
|
"quality_score": 8.9,
|
|
"waste_quantity": 21.6,
|
|
"defect_quantity": 6.48,
|
|
"waste_defect_type": "minor_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard batch production",
|
|
"quality_notes": "Waste: 21.6kg (minor_defects), Defects: 6.48kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 42d 9h 20m"
|
|
},
|
|
{
|
|
"id": "2d8fea2a-e46e-5d2e-92ed-895701987e7c",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-050D-020",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 40d 6h",
|
|
"planned_end_time": "BASE_TS - 40d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 40d 6h",
|
|
"actual_end_time": "BASE_TS - 40d 8h 45m",
|
|
"actual_quantity": 92.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000020-0000-0000-0000-000000000020",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.0
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 138.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 92.0,
|
|
"quality_score": 9.0,
|
|
"waste_quantity": 8.0,
|
|
"defect_quantity": 2.4,
|
|
"waste_defect_type": "overproduction_expired",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 8.0kg (overproduction_expired), Defects: 2.4kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 40d 8h 45m"
|
|
},
|
|
{
|
|
"id": "17cc9e90-0def-5396-8cd4-42724f5355ce",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-052D-021",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 38d 6h",
|
|
"planned_end_time": "BASE_TS - 38d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 38d 6h",
|
|
"actual_end_time": "BASE_TS - 38d 10h 0m",
|
|
"actual_quantity": 97.2,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000021-0000-0000-0000-000000000021",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.1
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 97.2,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 81.0,
|
|
"quality_score": 8.1,
|
|
"waste_quantity": 22.8,
|
|
"defect_quantity": 6.84,
|
|
"waste_defect_type": "undercooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard recipe - acceptable waste",
|
|
"quality_notes": "Waste: 22.8kg (undercooked), Defects: 6.84kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 38d 10h 0m"
|
|
},
|
|
{
|
|
"id": "4d00cd40-3022-5316-b53e-677ad94f2575",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-054D-022",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 36d 6h",
|
|
"planned_end_time": "BASE_TS - 36d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 36d 6h",
|
|
"actual_end_time": "BASE_TS - 36d 9h 0m",
|
|
"actual_quantity": 54.0,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000022-0000-0000-0000-000000000022",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.2
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 81.0,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 90.0,
|
|
"quality_score": 9.2,
|
|
"waste_quantity": 6.0,
|
|
"defect_quantity": 1.8,
|
|
"waste_defect_type": "overcooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 6.0kg (overcooked), Defects: 1.8kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 36d 9h 0m"
|
|
},
|
|
{
|
|
"id": "8294fb22-33ec-5f32-a6d3-ad43ed35c84e",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-056D-023",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 34d 6h",
|
|
"planned_end_time": "BASE_TS - 34d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 34d 6h",
|
|
"actual_end_time": "BASE_TS - 34d 9h 20m",
|
|
"actual_quantity": 63.2,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000023-0000-0000-0000-000000000023",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.3
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 79.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 79.0,
|
|
"quality_score": 8.3,
|
|
"waste_quantity": 16.8,
|
|
"defect_quantity": 5.04,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual temperature control",
|
|
"quality_notes": "Waste: 16.8kg (burnt), Defects: 5.04kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 34d 9h 20m"
|
|
},
|
|
{
|
|
"id": "20fe8abe-3e78-546f-bd82-f1c83035fb51",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-058D-024",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 32d 6h",
|
|
"planned_end_time": "BASE_TS - 32d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 32d 6h",
|
|
"actual_end_time": "BASE_TS - 32d 8h 45m",
|
|
"actual_quantity": 88.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000024-0000-0000-0000-000000000024",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.4
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 132.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 88.0,
|
|
"quality_score": 9.4,
|
|
"waste_quantity": 12.0,
|
|
"defect_quantity": 3.6,
|
|
"waste_defect_type": "overproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI quality prediction - early intervention",
|
|
"quality_notes": "Waste: 12.0kg (overproofed), Defects: 3.6kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 32d 8h 45m"
|
|
},
|
|
{
|
|
"id": "90ba2a6e-5da6-5924-a940-0d73124e1515",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-060D-025",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 30d 6h",
|
|
"planned_end_time": "BASE_TS - 30d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 30d 6h",
|
|
"actual_end_time": "BASE_TS - 30d 10h 0m",
|
|
"actual_quantity": 110.4,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000025-0000-0000-0000-000000000025",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.5
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 110.4,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 92.0,
|
|
"quality_score": 9.5,
|
|
"waste_quantity": 9.6,
|
|
"defect_quantity": 2.88,
|
|
"waste_defect_type": "underproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 9.6kg (underproofed), Defects: 2.88kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 30d 10h 0m"
|
|
},
|
|
{
|
|
"id": "9d5d1235-0940-560f-be14-6e6c1b64fafa",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-061D-026",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 29d 6h",
|
|
"planned_end_time": "BASE_TS - 29d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 29d 6h",
|
|
"actual_end_time": "BASE_TS - 29d 9h 0m",
|
|
"actual_quantity": 54.6,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000026-0000-0000-0000-000000000026",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.6
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 81.9,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 91.0,
|
|
"quality_score": 9.6,
|
|
"waste_quantity": 5.4,
|
|
"defect_quantity": 1.62,
|
|
"waste_defect_type": "shape_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI temperature control - reduced defects",
|
|
"quality_notes": "Waste: 5.4kg (shape_defects), Defects: 1.62kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 29d 9h 0m"
|
|
},
|
|
{
|
|
"id": "892b28e2-60e7-55d0-97df-d5b0426a88a1",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-062D-027",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 28d 6h",
|
|
"planned_end_time": "BASE_TS - 28d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 28d 6h",
|
|
"actual_end_time": "BASE_TS - 28d 9h 20m",
|
|
"actual_quantity": 72.0,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000027-0000-0000-0000-000000000027",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.7
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 90.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 90.0,
|
|
"quality_score": 9.7,
|
|
"waste_quantity": 8.0,
|
|
"defect_quantity": 2.4,
|
|
"waste_defect_type": "quality_control_fail",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 8.0kg (quality_control_fail), Defects: 2.4kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 28d 9h 20m"
|
|
},
|
|
{
|
|
"id": "8b6eec99-63e0-5cbf-a166-5208fff4ecb7",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-063D-028",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 27d 6h",
|
|
"planned_end_time": "BASE_TS - 27d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 27d 6h",
|
|
"actual_end_time": "BASE_TS - 27d 8h 45m",
|
|
"actual_quantity": 74.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000028-0000-0000-0000-000000000028",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.8
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 111.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 74.0,
|
|
"quality_score": 8.8,
|
|
"waste_quantity": 26.0,
|
|
"defect_quantity": 7.8,
|
|
"waste_defect_type": "equipment_malfunction",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual temperature control",
|
|
"quality_notes": "Waste: 26.0kg (equipment_malfunction), Defects: 7.8kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 27d 8h 45m"
|
|
},
|
|
{
|
|
"id": "63f6704a-66bc-5693-b61f-3206b47518ce",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-064D-029",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 26d 6h",
|
|
"planned_end_time": "BASE_TS - 26d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 26d 6h",
|
|
"actual_end_time": "BASE_TS - 26d 10h 0m",
|
|
"actual_quantity": 87.6,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000029-0000-0000-0000-000000000029",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.9
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 87.6,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 73.0,
|
|
"quality_score": 8.9,
|
|
"waste_quantity": 32.4,
|
|
"defect_quantity": 9.72,
|
|
"waste_defect_type": "minor_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard batch production",
|
|
"quality_notes": "Waste: 32.4kg (minor_defects), Defects: 9.72kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 26d 10h 0m"
|
|
},
|
|
{
|
|
"id": "b7346c63-ee9a-52a9-8cf7-f19315894f2c",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-065D-030",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 25d 6h",
|
|
"planned_end_time": "BASE_TS - 25d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 25d 6h",
|
|
"actual_end_time": "BASE_TS - 25d 9h 0m",
|
|
"actual_quantity": 55.2,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000030-0000-0000-0000-000000000030",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.0
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 82.8,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 92.0,
|
|
"quality_score": 9.0,
|
|
"waste_quantity": 4.8,
|
|
"defect_quantity": 1.44,
|
|
"waste_defect_type": "overproduction_expired",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 4.8kg (overproduction_expired), Defects: 1.44kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 25d 9h 0m"
|
|
},
|
|
{
|
|
"id": "89b637f5-6ce5-5853-8efb-59c7f6dbff4e",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-066D-031",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 24d 6h",
|
|
"planned_end_time": "BASE_TS - 24d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 24d 6h",
|
|
"actual_end_time": "BASE_TS - 24d 9h 20m",
|
|
"actual_quantity": 72.8,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000031-0000-0000-0000-000000000031",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.1
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 91.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 91.0,
|
|
"quality_score": 9.1,
|
|
"waste_quantity": 7.2,
|
|
"defect_quantity": 2.16,
|
|
"waste_defect_type": "undercooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI temperature control - reduced defects",
|
|
"quality_notes": "Waste: 7.2kg (undercooked), Defects: 2.16kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 24d 9h 20m"
|
|
},
|
|
{
|
|
"id": "cae83147-cd5d-5b21-bd57-9c3e6fb074b3",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-067D-032",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 23d 6h",
|
|
"planned_end_time": "BASE_TS - 23d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 23d 6h",
|
|
"actual_end_time": "BASE_TS - 23d 8h 45m",
|
|
"actual_quantity": 90.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000032-0000-0000-0000-000000000032",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.2
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 135.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 90.0,
|
|
"quality_score": 9.2,
|
|
"waste_quantity": 10.0,
|
|
"defect_quantity": 3.0,
|
|
"waste_defect_type": "overcooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 10.0kg (overcooked), Defects: 3.0kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 23d 8h 45m"
|
|
},
|
|
{
|
|
"id": "c22ccb4b-7318-51bb-8a35-737b8358b320",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-068D-033",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 22d 6h",
|
|
"planned_end_time": "BASE_TS - 22d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 22d 6h",
|
|
"actual_end_time": "BASE_TS - 22d 10h 0m",
|
|
"actual_quantity": 94.8,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000033-0000-0000-0000-000000000033",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.3
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 94.8,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 79.0,
|
|
"quality_score": 8.3,
|
|
"waste_quantity": 25.2,
|
|
"defect_quantity": 7.56,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual temperature control",
|
|
"quality_notes": "Waste: 25.2kg (burnt), Defects: 7.56kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 22d 10h 0m"
|
|
},
|
|
{
|
|
"id": "8fe7f6f1-d99e-5f53-9006-dc7a84182fb7",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-069D-034",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 21d 6h",
|
|
"planned_end_time": "BASE_TS - 21d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 21d 6h",
|
|
"actual_end_time": "BASE_TS - 21d 9h 0m",
|
|
"actual_quantity": 46.8,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000034-0000-0000-0000-000000000034",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.4
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 70.2,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 78.0,
|
|
"quality_score": 8.4,
|
|
"waste_quantity": 13.2,
|
|
"defect_quantity": 3.96,
|
|
"waste_defect_type": "overproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard batch production",
|
|
"quality_notes": "Waste: 13.2kg (overproofed), Defects: 3.96kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 21d 9h 0m"
|
|
},
|
|
{
|
|
"id": "422c42c6-9345-55df-a26d-09ec2c9530f4",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-070D-035",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 20d 6h",
|
|
"planned_end_time": "BASE_TS - 20d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 20d 6h",
|
|
"actual_end_time": "BASE_TS - 20d 9h 20m",
|
|
"actual_quantity": 73.6,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000035-0000-0000-0000-000000000035",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.5
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 92.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 92.0,
|
|
"quality_score": 9.5,
|
|
"waste_quantity": 6.4,
|
|
"defect_quantity": 1.92,
|
|
"waste_defect_type": "underproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 6.4kg (underproofed), Defects: 1.92kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 20d 9h 20m"
|
|
},
|
|
{
|
|
"id": "35f7edba-eae0-53d2-b668-f8bbafd690ad",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-071D-036",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 19d 6h",
|
|
"planned_end_time": "BASE_TS - 19d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 19d 6h",
|
|
"actual_end_time": "BASE_TS - 19d 8h 45m",
|
|
"actual_quantity": 91.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000036-0000-0000-0000-000000000036",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.6
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 136.5,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 91.0,
|
|
"quality_score": 9.6,
|
|
"waste_quantity": 9.0,
|
|
"defect_quantity": 2.7,
|
|
"waste_defect_type": "shape_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI temperature control - reduced defects",
|
|
"quality_notes": "Waste: 9.0kg (shape_defects), Defects: 2.7kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 19d 8h 45m"
|
|
},
|
|
{
|
|
"id": "18d3bcf9-1357-5c6e-9364-039f6366999e",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-072D-037",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 18d 6h",
|
|
"planned_end_time": "BASE_TS - 18d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 18d 6h",
|
|
"actual_end_time": "BASE_TS - 18d 10h 0m",
|
|
"actual_quantity": 108.0,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000037-0000-0000-0000-000000000037",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.7
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 108.0,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 90.0,
|
|
"quality_score": 9.7,
|
|
"waste_quantity": 12.0,
|
|
"defect_quantity": 3.6,
|
|
"waste_defect_type": "quality_control_fail",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 12.0kg (quality_control_fail), Defects: 3.6kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 18d 10h 0m"
|
|
},
|
|
{
|
|
"id": "33c1f3ea-2033-5884-adf4-7722354246a5",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-073D-038",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 17d 6h",
|
|
"planned_end_time": "BASE_TS - 17d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 17d 6h",
|
|
"actual_end_time": "BASE_TS - 17d 9h 0m",
|
|
"actual_quantity": 44.4,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000038-0000-0000-0000-000000000038",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.8
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 66.6,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 74.0,
|
|
"quality_score": 8.8,
|
|
"waste_quantity": 15.6,
|
|
"defect_quantity": 4.68,
|
|
"waste_defect_type": "equipment_malfunction",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual temperature control",
|
|
"quality_notes": "Waste: 15.6kg (equipment_malfunction), Defects: 4.68kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 17d 9h 0m"
|
|
},
|
|
{
|
|
"id": "b192db51-69e7-5969-bfa1-3b86a69548b1",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-074D-039",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 16d 6h",
|
|
"planned_end_time": "BASE_TS - 16d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 16d 6h",
|
|
"actual_end_time": "BASE_TS - 16d 9h 20m",
|
|
"actual_quantity": 58.4,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000039-0000-0000-0000-000000000039",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.9
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 73.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 73.0,
|
|
"quality_score": 8.9,
|
|
"waste_quantity": 21.6,
|
|
"defect_quantity": 6.48,
|
|
"waste_defect_type": "minor_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard batch production",
|
|
"quality_notes": "Waste: 21.6kg (minor_defects), Defects: 6.48kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 16d 9h 20m"
|
|
},
|
|
{
|
|
"id": "2232592e-ecee-53e5-a0ed-ecb8992416c3",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-075D-040",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 15d 6h",
|
|
"planned_end_time": "BASE_TS - 15d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 15d 6h",
|
|
"actual_end_time": "BASE_TS - 15d 8h 45m",
|
|
"actual_quantity": 92.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000040-0000-0000-0000-000000000040",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.0
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 138.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 92.0,
|
|
"quality_score": 9.0,
|
|
"waste_quantity": 8.0,
|
|
"defect_quantity": 2.4,
|
|
"waste_defect_type": "overproduction_expired",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 8.0kg (overproduction_expired), Defects: 2.4kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 15d 8h 45m"
|
|
},
|
|
{
|
|
"id": "f00cba0e-e09b-53d0-add3-1d0bbd39ecad",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-076D-041",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 14d 6h",
|
|
"planned_end_time": "BASE_TS - 14d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 14d 6h",
|
|
"actual_end_time": "BASE_TS - 14d 10h 0m",
|
|
"actual_quantity": 109.2,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000041-0000-0000-0000-000000000041",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.1
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 109.2,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 91.0,
|
|
"quality_score": 9.1,
|
|
"waste_quantity": 10.8,
|
|
"defect_quantity": 3.24,
|
|
"waste_defect_type": "undercooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI temperature control - reduced defects",
|
|
"quality_notes": "Waste: 10.8kg (undercooked), Defects: 3.24kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 14d 10h 0m"
|
|
},
|
|
{
|
|
"id": "8cae4350-f4fd-5b1b-aa7d-1b361627efb8",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-077D-042",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 13d 6h",
|
|
"planned_end_time": "BASE_TS - 13d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 13d 6h",
|
|
"actual_end_time": "BASE_TS - 13d 9h 0m",
|
|
"actual_quantity": 54.0,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000042-0000-0000-0000-000000000042",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.2
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 81.0,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 90.0,
|
|
"quality_score": 9.2,
|
|
"waste_quantity": 6.0,
|
|
"defect_quantity": 1.8,
|
|
"waste_defect_type": "overcooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 6.0kg (overcooked), Defects: 1.8kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 13d 9h 0m"
|
|
},
|
|
{
|
|
"id": "97553d0c-3473-5a6b-a360-c1d3e1d113ef",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-078D-043",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 12d 6h",
|
|
"planned_end_time": "BASE_TS - 12d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 12d 6h",
|
|
"actual_end_time": "BASE_TS - 12d 9h 20m",
|
|
"actual_quantity": 63.2,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000043-0000-0000-0000-000000000043",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.3
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 79.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 79.0,
|
|
"quality_score": 8.3,
|
|
"waste_quantity": 16.8,
|
|
"defect_quantity": 5.04,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual temperature control",
|
|
"quality_notes": "Waste: 16.8kg (burnt), Defects: 5.04kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 12d 9h 20m"
|
|
},
|
|
{
|
|
"id": "09483e75-7d26-51f4-8991-01b8e409d692",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-079D-044",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 11d 6h",
|
|
"planned_end_time": "BASE_TS - 11d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 11d 6h",
|
|
"actual_end_time": "BASE_TS - 11d 8h 45m",
|
|
"actual_quantity": 78.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000044-0000-0000-0000-000000000044",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.4
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 117.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 78.0,
|
|
"quality_score": 8.4,
|
|
"waste_quantity": 22.0,
|
|
"defect_quantity": 6.6,
|
|
"waste_defect_type": "overproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard batch production",
|
|
"quality_notes": "Waste: 22.0kg (overproofed), Defects: 6.6kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 11d 8h 45m"
|
|
},
|
|
{
|
|
"id": "1e928be3-02dc-52bf-bdbc-ea572bf05cc8",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-080D-045",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 10d 6h",
|
|
"planned_end_time": "BASE_TS - 10d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 10d 6h",
|
|
"actual_end_time": "BASE_TS - 10d 10h 0m",
|
|
"actual_quantity": 110.4,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000045-0000-0000-0000-000000000045",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.5
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 110.4,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 92.0,
|
|
"quality_score": 9.5,
|
|
"waste_quantity": 9.6,
|
|
"defect_quantity": 2.88,
|
|
"waste_defect_type": "underproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 9.6kg (underproofed), Defects: 2.88kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 10d 10h 0m"
|
|
},
|
|
{
|
|
"id": "e103754f-88dc-5af3-9f9b-d8e8099f3eae",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-081D-046",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 9d 6h",
|
|
"planned_end_time": "BASE_TS - 9d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 9d 6h",
|
|
"actual_end_time": "BASE_TS - 9d 9h 0m",
|
|
"actual_quantity": 54.6,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000046-0000-0000-0000-000000000046",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.6
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 81.9,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 91.0,
|
|
"quality_score": 9.6,
|
|
"waste_quantity": 5.4,
|
|
"defect_quantity": 1.62,
|
|
"waste_defect_type": "shape_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI temperature control - reduced defects",
|
|
"quality_notes": "Waste: 5.4kg (shape_defects), Defects: 1.62kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 9d 9h 0m"
|
|
},
|
|
{
|
|
"id": "74d48a5e-854c-5554-87b3-f9f46435a127",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-082D-047",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 8d 6h",
|
|
"planned_end_time": "BASE_TS - 8d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 8d 6h",
|
|
"actual_end_time": "BASE_TS - 8d 9h 20m",
|
|
"actual_quantity": 72.0,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000047-0000-0000-0000-000000000047",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.7
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 90.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 90.0,
|
|
"quality_score": 9.7,
|
|
"waste_quantity": 8.0,
|
|
"defect_quantity": 2.4,
|
|
"waste_defect_type": "quality_control_fail",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 8.0kg (quality_control_fail), Defects: 2.4kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 8d 9h 20m"
|
|
},
|
|
{
|
|
"id": "9a68f990-b784-57c3-b34d-b7e44b844718",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-083D-048",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 7d 6h",
|
|
"planned_end_time": "BASE_TS - 7d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 7d 6h",
|
|
"actual_end_time": "BASE_TS - 7d 8h 45m",
|
|
"actual_quantity": 74.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000048-0000-0000-0000-000000000048",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.8
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 111.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 74.0,
|
|
"quality_score": 8.8,
|
|
"waste_quantity": 26.0,
|
|
"defect_quantity": 7.8,
|
|
"waste_defect_type": "equipment_malfunction",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual temperature control",
|
|
"quality_notes": "Waste: 26.0kg (equipment_malfunction), Defects: 7.8kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 7d 8h 45m"
|
|
},
|
|
{
|
|
"id": "80860547-9c92-5862-919d-0fdbaf29996e",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-084D-049",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 6d 6h",
|
|
"planned_end_time": "BASE_TS - 6d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 6d 6h",
|
|
"actual_end_time": "BASE_TS - 6d 10h 0m",
|
|
"actual_quantity": 87.6,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000049-0000-0000-0000-000000000049",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.9
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 87.6,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 73.0,
|
|
"quality_score": 8.9,
|
|
"waste_quantity": 32.4,
|
|
"defect_quantity": 9.72,
|
|
"waste_defect_type": "minor_defects",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard batch production",
|
|
"quality_notes": "Waste: 32.4kg (minor_defects), Defects: 9.72kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 6d 10h 0m"
|
|
},
|
|
{
|
|
"id": "76e913d8-5060-5682-ae5c-13b3a22a1f19",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-085D-050",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 5d 6h",
|
|
"planned_end_time": "BASE_TS - 5d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 5d 6h",
|
|
"actual_end_time": "BASE_TS - 5d 9h 0m",
|
|
"actual_quantity": 55.2,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000050-0000-0000-0000-000000000050",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.0
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 82.8,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 92.0,
|
|
"quality_score": 9.0,
|
|
"waste_quantity": 4.8,
|
|
"defect_quantity": 1.44,
|
|
"waste_defect_type": "overproduction_expired",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI demand forecast - optimal batch size",
|
|
"quality_notes": "Waste: 4.8kg (overproduction_expired), Defects: 1.44kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 5d 9h 0m"
|
|
},
|
|
{
|
|
"id": "251e269e-e40c-5614-82ec-c6aae7e40c16",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-086D-051",
|
|
"product_id": "20000000-0000-0000-0000-000000000004",
|
|
"product_name": "Napolitana de Chocolate",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000004",
|
|
"planned_start_time": "BASE_TS - 4d 6h",
|
|
"planned_end_time": "BASE_TS - 4d 9h 20m",
|
|
"planned_quantity": 80.0,
|
|
"planned_duration_minutes": 200,
|
|
"actual_start_time": "BASE_TS - 4d 6h",
|
|
"actual_end_time": "BASE_TS - 4d 9h 20m",
|
|
"actual_quantity": 72.8,
|
|
"actual_duration_minutes": 200,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000051-0000-0000-0000-000000000051",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.1
|
|
}
|
|
],
|
|
"estimated_cost": 100.0,
|
|
"actual_cost": 91.0,
|
|
"labor_cost": 50.0,
|
|
"material_cost": 35.0,
|
|
"overhead_cost": 15.0,
|
|
"yield_percentage": 91.0,
|
|
"quality_score": 9.1,
|
|
"waste_quantity": 7.2,
|
|
"defect_quantity": 2.16,
|
|
"waste_defect_type": "undercooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI temperature control - reduced defects",
|
|
"quality_notes": "Waste: 7.2kg (undercooked), Defects: 2.16kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 4d 9h 20m"
|
|
},
|
|
{
|
|
"id": "e7f69a8d-0300-519d-afea-b70b768f9645",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-087D-052",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"product_name": "Baguette Francesa Tradicional",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"planned_start_time": "BASE_TS - 3d 6h",
|
|
"planned_end_time": "BASE_TS - 3d 8h 45m",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 165,
|
|
"actual_start_time": "BASE_TS - 3d 6h",
|
|
"actual_end_time": "BASE_TS - 3d 8h 45m",
|
|
"actual_quantity": 90.0,
|
|
"actual_duration_minutes": 165,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000052-0000-0000-0000-000000000052",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 9.2
|
|
}
|
|
],
|
|
"estimated_cost": 150.0,
|
|
"actual_cost": 135.0,
|
|
"labor_cost": 75.0,
|
|
"material_cost": 52.5,
|
|
"overhead_cost": 22.5,
|
|
"yield_percentage": 90.0,
|
|
"quality_score": 9.2,
|
|
"waste_quantity": 10.0,
|
|
"defect_quantity": 3.0,
|
|
"waste_defect_type": "overcooked",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000001"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-01",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": true,
|
|
"production_notes": "AI timing optimization - minimal waste",
|
|
"quality_notes": "Waste: 10.0kg (overcooked), Defects: 3.0kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 3d 8h 45m"
|
|
},
|
|
{
|
|
"id": "0fac5cfc-57ef-5d56-a1ae-245cd2b9f810",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-088D-053",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"product_name": "Croissant de Mantequilla Artesanal",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"planned_start_time": "BASE_TS - 2d 6h",
|
|
"planned_end_time": "BASE_TS - 2d 10h 0m",
|
|
"planned_quantity": 120.0,
|
|
"planned_duration_minutes": 240,
|
|
"actual_start_time": "BASE_TS - 2d 6h",
|
|
"actual_end_time": "BASE_TS - 2d 10h 0m",
|
|
"actual_quantity": 94.8,
|
|
"actual_duration_minutes": 240,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000053-0000-0000-0000-000000000053",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.3
|
|
}
|
|
],
|
|
"estimated_cost": 120.0,
|
|
"actual_cost": 94.8,
|
|
"labor_cost": 60.0,
|
|
"material_cost": 42.0,
|
|
"overhead_cost": 18.0,
|
|
"yield_percentage": 79.0,
|
|
"quality_score": 8.3,
|
|
"waste_quantity": 25.2,
|
|
"defect_quantity": 7.56,
|
|
"waste_defect_type": "burnt",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000002"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-02",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Manual temperature control",
|
|
"quality_notes": "Waste: 25.2kg (burnt), Defects: 7.56kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 2d 10h 0m"
|
|
},
|
|
{
|
|
"id": "7b812558-3ec3-5aa6-a3db-806b1c404945",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"batch_number": "BATCH-SUST-089D-054",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"product_name": "Pan Integral",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"planned_start_time": "BASE_TS - 1d 6h",
|
|
"planned_end_time": "BASE_TS - 1d 9h 0m",
|
|
"planned_quantity": 60.0,
|
|
"planned_duration_minutes": 180,
|
|
"actual_start_time": "BASE_TS - 1d 6h",
|
|
"actual_end_time": "BASE_TS - 1d 9h 0m",
|
|
"actual_quantity": 46.8,
|
|
"actual_duration_minutes": 180,
|
|
"status": "COMPLETED",
|
|
"priority": "MEDIUM",
|
|
"current_process_stage": "packaging",
|
|
"process_stage_history": null,
|
|
"pending_quality_checks": null,
|
|
"completed_quality_checks": [
|
|
{
|
|
"id": "70000054-0000-0000-0000-000000000054",
|
|
"check_type": "visual_inspection",
|
|
"status": "completed",
|
|
"result": "passed",
|
|
"quality_score": 8.4
|
|
}
|
|
],
|
|
"estimated_cost": 90.0,
|
|
"actual_cost": 70.2,
|
|
"labor_cost": 45.0,
|
|
"material_cost": 31.5,
|
|
"overhead_cost": 13.5,
|
|
"yield_percentage": 78.0,
|
|
"quality_score": 8.4,
|
|
"waste_quantity": 13.2,
|
|
"defect_quantity": 3.96,
|
|
"waste_defect_type": "overproofed",
|
|
"equipment_used": [
|
|
"30000000-0000-0000-0000-000000000003"
|
|
],
|
|
"staff_assigned": [],
|
|
"station_id": "STATION-03",
|
|
"order_id": null,
|
|
"forecast_id": null,
|
|
"is_rush_order": false,
|
|
"is_special_recipe": false,
|
|
"is_ai_assisted": false,
|
|
"production_notes": "Standard batch production",
|
|
"quality_notes": "Waste: 13.2kg (overproofed), Defects: 3.96kg",
|
|
"delay_reason": null,
|
|
"cancellation_reason": null,
|
|
"reasoning_data": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS",
|
|
"completed_at": "BASE_TS - 1d 9h 0m"
|
|
}
|
|
],
|
|
"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"
|
|
}
|
|
],
|
|
"quality_check_templates": [
|
|
{
|
|
"id": "80000000-0000-0000-0000-000000000001",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Inspección Visual de Cocción",
|
|
"template_code": "QC-VISUAL-001",
|
|
"check_type": "visual",
|
|
"category": "Apariencia",
|
|
"description": "Inspección visual del color, dorado y apariencia general del producto horneado",
|
|
"instructions": "Verificar que el producto tenga un color uniforme, dorado apropiado y sin quemaduras. Revisar grietas, corteza y estructura general.",
|
|
"parameters": {
|
|
"color_uniformity": true,
|
|
"golden_brown": true,
|
|
"no_burns": true,
|
|
"proper_crust": true
|
|
},
|
|
"thresholds": {
|
|
"min_score": 7.0,
|
|
"critical_defects": [
|
|
"burnt",
|
|
"raw",
|
|
"collapsed"
|
|
]
|
|
},
|
|
"scoring_criteria": {
|
|
"color": 3.0,
|
|
"texture": 3.0,
|
|
"appearance": 2.0,
|
|
"structure": 2.0
|
|
},
|
|
"is_active": true,
|
|
"is_required": true,
|
|
"is_critical": false,
|
|
"weight": 1.0,
|
|
"min_value": null,
|
|
"max_value": null,
|
|
"target_value": null,
|
|
"unit": null,
|
|
"tolerance_percentage": null,
|
|
"applicable_stages": [
|
|
"baking",
|
|
"cooling",
|
|
"packaging"
|
|
],
|
|
"created_by": "c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "80000000-0000-0000-0000-000000000002",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Control de Peso Unitario",
|
|
"template_code": "QC-WEIGHT-001",
|
|
"check_type": "measurement",
|
|
"category": "Dimensiones",
|
|
"description": "Verificación del peso unitario del producto contra los estándares definidos",
|
|
"instructions": "Pesar una muestra representativa de 5 unidades y verificar que el peso promedio esté dentro de la tolerancia permitida.",
|
|
"parameters": {
|
|
"sample_size": 5,
|
|
"unit": "grams"
|
|
},
|
|
"thresholds": {
|
|
"min_weight": null,
|
|
"max_weight": null,
|
|
"tolerance": 5.0
|
|
},
|
|
"scoring_criteria": {
|
|
"weight_accuracy": 5.0,
|
|
"consistency": 5.0
|
|
},
|
|
"is_active": true,
|
|
"is_required": true,
|
|
"is_critical": false,
|
|
"weight": 1.5,
|
|
"min_value": null,
|
|
"max_value": null,
|
|
"target_value": null,
|
|
"unit": "g",
|
|
"tolerance_percentage": 5.0,
|
|
"applicable_stages": [
|
|
"packaging"
|
|
],
|
|
"created_by": "c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "80000000-0000-0000-0000-000000000003",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Control de Temperatura Interna",
|
|
"template_code": "QC-TEMP-001",
|
|
"check_type": "temperature",
|
|
"category": "Cocción",
|
|
"description": "Medición de la temperatura interna del producto para verificar cocción completa",
|
|
"instructions": "Insertar termómetro en el centro del producto y verificar que alcance la temperatura mínima de seguridad alimentaria.",
|
|
"parameters": {
|
|
"measurement_location": "center",
|
|
"thermometer_type": "digital"
|
|
},
|
|
"thresholds": {
|
|
"min_temp": 88.0,
|
|
"max_temp": 98.0,
|
|
"critical_min": 75.0
|
|
},
|
|
"scoring_criteria": {
|
|
"temperature_range": 10.0
|
|
},
|
|
"is_active": true,
|
|
"is_required": true,
|
|
"is_critical": true,
|
|
"weight": 2.0,
|
|
"min_value": 88.0,
|
|
"max_value": 98.0,
|
|
"target_value": 93.0,
|
|
"unit": "°C",
|
|
"tolerance_percentage": 5.0,
|
|
"applicable_stages": [
|
|
"baking"
|
|
],
|
|
"created_by": "c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "80000000-0000-0000-0000-000000000004",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Evaluación de Textura y Estructura",
|
|
"template_code": "QC-TEXTURE-001",
|
|
"check_type": "visual",
|
|
"category": "Estructura",
|
|
"description": "Evaluación de la textura interna, alveolado y estructura de la miga",
|
|
"instructions": "Cortar el producto por la mitad y evaluar: alveolado uniforme, miga suave y húmeda, estructura adecuada sin zonas densas.",
|
|
"parameters": {
|
|
"crumb_structure": true,
|
|
"moisture_level": true,
|
|
"alveoli_distribution": true
|
|
},
|
|
"thresholds": {
|
|
"min_score": 7.0,
|
|
"critical_defects": [
|
|
"dense",
|
|
"dry",
|
|
"gummy"
|
|
]
|
|
},
|
|
"scoring_criteria": {
|
|
"crumb_openness": 3.0,
|
|
"moisture": 3.0,
|
|
"consistency": 2.0,
|
|
"mouthfeel": 2.0
|
|
},
|
|
"is_active": true,
|
|
"is_required": false,
|
|
"is_critical": false,
|
|
"weight": 1.0,
|
|
"min_value": null,
|
|
"max_value": null,
|
|
"target_value": null,
|
|
"unit": null,
|
|
"tolerance_percentage": null,
|
|
"applicable_stages": [
|
|
"cooling",
|
|
"packaging"
|
|
],
|
|
"created_by": "c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "80000000-0000-0000-0000-000000000005",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Control de Dimensiones",
|
|
"template_code": "QC-DIM-001",
|
|
"check_type": "measurement",
|
|
"category": "Dimensiones",
|
|
"description": "Verificación de las dimensiones (largo, ancho, alto) del producto terminado",
|
|
"instructions": "Medir una muestra de 5 unidades con calibrador o regla. Verificar que las dimensiones estén dentro del rango especificado.",
|
|
"parameters": {
|
|
"sample_size": 5,
|
|
"dimensions": [
|
|
"length",
|
|
"width",
|
|
"height"
|
|
]
|
|
},
|
|
"thresholds": {
|
|
"tolerance": 10.0
|
|
},
|
|
"scoring_criteria": {
|
|
"dimensional_accuracy": 5.0,
|
|
"uniformity": 5.0
|
|
},
|
|
"is_active": true,
|
|
"is_required": false,
|
|
"is_critical": false,
|
|
"weight": 0.8,
|
|
"min_value": null,
|
|
"max_value": null,
|
|
"target_value": null,
|
|
"unit": "cm",
|
|
"tolerance_percentage": 10.0,
|
|
"applicable_stages": [
|
|
"shaping",
|
|
"packaging"
|
|
],
|
|
"created_by": "c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "80000000-0000-0000-0000-000000000006",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Prueba Organoléptica (Sabor y Aroma)",
|
|
"template_code": "QC-TASTE-001",
|
|
"check_type": "visual",
|
|
"category": "Calidad Sensorial",
|
|
"description": "Evaluación del sabor, aroma y características organolépticas del producto",
|
|
"instructions": "Probar una muestra del producto. Evaluar sabor apropiado, aroma característico, sin sabores extraños u oxidación.",
|
|
"parameters": {
|
|
"flavor_profile": true,
|
|
"aroma": true,
|
|
"off_flavors": false,
|
|
"freshness": true
|
|
},
|
|
"thresholds": {
|
|
"min_score": 8.0,
|
|
"critical_defects": [
|
|
"off_taste",
|
|
"rancid",
|
|
"bitter"
|
|
]
|
|
},
|
|
"scoring_criteria": {
|
|
"flavor": 4.0,
|
|
"aroma": 3.0,
|
|
"freshness": 2.0,
|
|
"overall_quality": 1.0
|
|
},
|
|
"is_active": true,
|
|
"is_required": false,
|
|
"is_critical": true,
|
|
"weight": 1.5,
|
|
"min_value": null,
|
|
"max_value": null,
|
|
"target_value": null,
|
|
"unit": null,
|
|
"tolerance_percentage": null,
|
|
"applicable_stages": [
|
|
"cooling",
|
|
"packaging"
|
|
],
|
|
"created_by": "c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "80000000-0000-0000-0000-000000000007",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Control de Fermentación",
|
|
"template_code": "QC-PROOF-001",
|
|
"check_type": "visual",
|
|
"category": "Fermentación",
|
|
"description": "Evaluación del nivel de fermentación adecuado antes del horneado",
|
|
"instructions": "Verificar volumen de la masa, elasticidad al tacto y señales de fermentación apropiada. Prueba del dedo para verificar punto óptimo.",
|
|
"parameters": {
|
|
"volume_increase": true,
|
|
"finger_test": true,
|
|
"structure": true
|
|
},
|
|
"thresholds": {
|
|
"min_score": 7.0,
|
|
"critical_defects": [
|
|
"underproofed",
|
|
"overproofed",
|
|
"collapsed"
|
|
]
|
|
},
|
|
"scoring_criteria": {
|
|
"volume": 4.0,
|
|
"elasticity": 3.0,
|
|
"structure": 3.0
|
|
},
|
|
"is_active": true,
|
|
"is_required": true,
|
|
"is_critical": false,
|
|
"weight": 1.2,
|
|
"min_value": null,
|
|
"max_value": null,
|
|
"target_value": null,
|
|
"unit": null,
|
|
"tolerance_percentage": null,
|
|
"applicable_stages": [
|
|
"proofing"
|
|
],
|
|
"created_by": "c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
},
|
|
{
|
|
"id": "80000000-0000-0000-0000-000000000008",
|
|
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"name": "Control de Laminado (Hojaldre)",
|
|
"template_code": "QC-LAMINATE-001",
|
|
"check_type": "visual",
|
|
"category": "Técnica",
|
|
"description": "Evaluación de la calidad del laminado en productos de hojaldre (croissants, napolitanas)",
|
|
"instructions": "Verificar número de capas visibles, separación entre capas, sin mantequilla derramada. Cortar producto para inspeccionar estructura interna.",
|
|
"parameters": {
|
|
"layer_count": true,
|
|
"layer_separation": true,
|
|
"butter_distribution": true,
|
|
"no_leakage": true
|
|
},
|
|
"thresholds": {
|
|
"min_score": 8.0,
|
|
"critical_defects": [
|
|
"butter_leakage",
|
|
"collapsed_layers",
|
|
"uneven_distribution"
|
|
]
|
|
},
|
|
"scoring_criteria": {
|
|
"layer_definition": 4.0,
|
|
"butter_incorporation": 3.0,
|
|
"structure": 2.0,
|
|
"appearance": 1.0
|
|
},
|
|
"is_active": true,
|
|
"is_required": false,
|
|
"is_critical": false,
|
|
"weight": 1.3,
|
|
"min_value": null,
|
|
"max_value": null,
|
|
"target_value": null,
|
|
"unit": null,
|
|
"tolerance_percentage": null,
|
|
"applicable_stages": [
|
|
"shaping",
|
|
"baking"
|
|
],
|
|
"created_by": "c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6",
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
}
|
|
]
|
|
} |