Files
bakery-ia/shared/demo/fixtures/professional/06-production.json
Urtzi Alfaro 9f3b39bd28 Add comprehensive documentation and final improvements
Documentation Added:
- AI_INSIGHTS_DEMO_SETUP_GUIDE.md: Complete setup guide for demo sessions
- AI_INSIGHTS_DATA_FLOW.md: Architecture and data flow diagrams
- AI_INSIGHTS_QUICK_START.md: Quick reference guide
- DEMO_SESSION_ANALYSIS_REPORT.md: Detailed analysis of demo session d67eaae4
- ROOT_CAUSE_ANALYSIS_AND_FIXES.md: Complete analysis of 8 issues (6 fixed, 2 analyzed)
- COMPLETE_FIX_SUMMARY.md: Executive summary of all fixes
- FIX_MISSING_INSIGHTS.md: Forecasting and procurement fix guide
- FINAL_STATUS_SUMMARY.md: Status overview
- verify_fixes.sh: Automated verification script
- enhance_procurement_data.py: Procurement data enhancement script

Service Improvements:
- Demo session cleanup worker: Use proper settings for Redis configuration with TLS/auth
- Procurement service: Add Redis initialization with proper error handling and cleanup
- Production fixture: Remove duplicate worker assignments (cleaned 56 duplicates)
- Orchestrator fixture: Add purchase order metadata for better tracking

Impact:
- Complete documentation for troubleshooting and setup
- Improved Redis connection handling across services
- Clean production data without duplicates
- Better error handling and logging

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 11:32:45 +01:00

5877 lines
199 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": 178.3,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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": "BASE_TS - 6d.22h"
},
{
"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": 250.9,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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": "BASE_TS - 6d.20h"
},
{
"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": 330.4,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 5d.19h"
},
{
"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": 182.6,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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": "BASE_TS - 5d.21h"
},
{
"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": 186.7,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 4d.21h"
},
{
"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": 259.3,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 4d.20h"
},
{
"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": 174.4,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 3d.22h"
},
{
"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": 339.8,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 3d.19h"
},
{
"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": 248.1,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 2d.20h"
},
{
"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": 204.6,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 2d.21h"
},
{
"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": 189.7,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 1d.21h"
},
{
"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": 332.3,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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": "BASE_TS - 1d.19h"
},
{
"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": 273.0,
"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": [
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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": "BASE_TS - 20h"
},
{
"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": 185.7,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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": "BASE_TS - 21h"
},
{
"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": 166.6,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 89d.22h"
},
{
"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": 272.6,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 86d.20h"
},
{
"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": 181.2,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 83d.21h"
},
{
"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": 225.6,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 80d.21h"
},
{
"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": 184.8,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 77d.21h"
},
{
"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": 241.1,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 74d.20h"
},
{
"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": 182.9,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 71d.21h"
},
{
"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": 215.9,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 68d.21h"
},
{
"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": 157.2,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 65d.22h"
},
{
"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": 266.0,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 62d.20h"
},
{
"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": 177.3,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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 - 59d.22h"
},
{
"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": 223.1,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 57d.21h"
},
{
"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": 159.6,
"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": [
"50000000-0000-0000-0000-000000000006"
],
"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 - 55d.22h"
},
{
"id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c7",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-SUST-086D-052",
"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",
"planned_end_time": "BASE_TS - 3d 8h 30m",
"planned_quantity": 80.0,
"planned_duration_minutes": 150,
"actual_start_time": "BASE_TS - 3d 6h",
"actual_end_time": "BASE_TS - 3d 8h 30m",
"actual_quantity": 76.0,
"actual_duration_minutes": 148.0,
"status": "COMPLETED",
"priority": "NORMAL",
"current_process_stage": "baking",
"process_stage_history": [
{
"stage": "preparation",
"start_time": "BASE_TS - 3d 6h",
"end_time": "BASE_TS - 3d 7h",
"duration_minutes": 60,
"status": "completed"
},
{
"stage": "baking",
"start_time": "BASE_TS - 3d 7h",
"end_time": "BASE_TS - 3d 8h 30m",
"duration_minutes": 90,
"status": "completed"
}
],
"pending_quality_checks": [],
"completed_quality_checks": [
{
"id": "70000052-0000-0000-0000-000000000052",
"check_type": "visual_inspection",
"status": "completed",
"result": "passed",
"quality_score": 8.8
}
],
"estimated_cost": 100.0,
"actual_cost": 92.0,
"labor_cost": 50.0,
"material_cost": 42.0,
"overhead_cost": 0.0,
"yield_percentage": 95.0,
"quality_score": 8.8,
"waste_quantity": 4.0,
"defect_quantity": 0.8,
"waste_defect_type": "undercooked",
"equipment_used": [
"30000000-0000-0000-0000-000000000002"
],
"staff_assigned": [
"50000000-0000-0000-0000-000000000006",
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"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-assisted baking with optimized temperature control",
"quality_notes": "Minimal waste due to AI optimization",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": "BASE_TS - 3d 8h 30m"
},
{
"id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c8",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-SUST-086D-053",
"product_id": "20000000-0000-0000-0000-000000000004",
"product_name": "Napolitana de Chocolate",
"recipe_id": "30000000-0000-0000-0000-000000000004",
"planned_start_time": "BASE_TS - 2d 6h",
"planned_end_time": "BASE_TS - 2d 8h 30m",
"planned_quantity": 80.0,
"planned_duration_minutes": 150,
"actual_start_time": "BASE_TS - 2d 6h",
"actual_end_time": "BASE_TS - 2d 8h 30m",
"actual_quantity": 77.0,
"actual_duration_minutes": 156.8,
"status": "COMPLETED",
"priority": "NORMAL",
"current_process_stage": "baking",
"process_stage_history": [
{
"stage": "preparation",
"start_time": "BASE_TS - 2d 6h",
"end_time": "BASE_TS - 2d 7h",
"duration_minutes": 60,
"status": "completed"
},
{
"stage": "baking",
"start_time": "BASE_TS - 2d 7h",
"end_time": "BASE_TS - 2d 8h 30m",
"duration_minutes": 90,
"status": "completed"
}
],
"pending_quality_checks": [],
"completed_quality_checks": [
{
"id": "70000053-0000-0000-0000-000000000053",
"check_type": "visual_inspection",
"status": "completed",
"result": "passed",
"quality_score": 9.0
}
],
"estimated_cost": 100.0,
"actual_cost": 91.5,
"labor_cost": 50.0,
"material_cost": 41.5,
"overhead_cost": 0.0,
"yield_percentage": 96.25,
"quality_score": 9.0,
"waste_quantity": 3.0,
"defect_quantity": 0.75,
"waste_defect_type": "minor_cracks",
"equipment_used": [
"30000000-0000-0000-0000-000000000002"
],
"staff_assigned": [
"50000000-0000-0000-0000-000000000006",
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Consistent quality with AI temperature monitoring",
"quality_notes": "Excellent yield with minimal defects",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": "BASE_TS - 2d 8h 30m"
},
{
"id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c9",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-SUST-086D-054",
"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 8h 30m",
"planned_quantity": 80.0,
"planned_duration_minutes": 150,
"actual_start_time": "BASE_TS - 1d 6h",
"actual_end_time": "BASE_TS - 1d 8h 30m",
"actual_quantity": 78.0,
"actual_duration_minutes": 142.7,
"status": "COMPLETED",
"priority": "NORMAL",
"current_process_stage": "baking",
"process_stage_history": [
{
"stage": "preparation",
"start_time": "BASE_TS - 1d 6h",
"end_time": "BASE_TS - 1d 7h",
"duration_minutes": 60,
"status": "completed"
},
{
"stage": "baking",
"start_time": "BASE_TS - 1d 7h",
"end_time": "BASE_TS - 1d 8h 30m",
"duration_minutes": 90,
"status": "completed"
}
],
"pending_quality_checks": [],
"completed_quality_checks": [
{
"id": "70000054-0000-0000-0000-000000000054",
"check_type": "visual_inspection",
"status": "completed",
"result": "passed",
"quality_score": 9.2
}
],
"estimated_cost": 100.0,
"actual_cost": 91.0,
"labor_cost": 50.0,
"material_cost": 41.0,
"overhead_cost": 0.0,
"yield_percentage": 97.5,
"quality_score": 9.2,
"waste_quantity": 2.0,
"defect_quantity": 0.5,
"waste_defect_type": "none",
"equipment_used": [
"30000000-0000-0000-0000-000000000002"
],
"staff_assigned": [
"50000000-0000-0000-0000-000000000006",
"c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6"
],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Optimal production with AI assistance",
"quality_notes": "Highest quality batch with excellent yield",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": "BASE_TS - 1d 8h 30m"
},
{
"id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5d0",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-SUST-086D-055",
"product_id": "20000000-0000-0000-0000-000000000004",
"product_name": "Napolitana de Chocolate",
"recipe_id": "30000000-0000-0000-0000-000000000004",
"planned_start_time": "BASE_TS - 10d 6h",
"planned_end_time": "BASE_TS - 10d 8h 30m",
"planned_quantity": 80.0,
"planned_duration_minutes": 150,
"actual_start_time": "BASE_TS - 10d 6h",
"actual_end_time": "BASE_TS - 10d 8h 30m",
"actual_quantity": 75.0,
"actual_duration_minutes": 149.6,
"status": "COMPLETED",
"priority": "NORMAL",
"current_process_stage": "baking",
"process_stage_history": [
{
"stage": "preparation",
"start_time": "BASE_TS - 10d 6h",
"end_time": "BASE_TS - 10d 7h",
"duration_minutes": 60,
"status": "completed"
},
{
"stage": "baking",
"start_time": "BASE_TS - 10d 7h",
"end_time": "BASE_TS - 10d 8h 30m",
"duration_minutes": 90,
"status": "completed"
}
],
"pending_quality_checks": [],
"completed_quality_checks": [
{
"id": "70000055-0000-0000-0000-000000000055",
"check_type": "visual_inspection",
"status": "completed",
"result": "passed",
"quality_score": 8.9
}
],
"estimated_cost": 100.0,
"actual_cost": 91.25,
"labor_cost": 50.0,
"material_cost": 41.25,
"overhead_cost": 0.0,
"yield_percentage": 93.75,
"quality_score": 8.9,
"waste_quantity": 5.0,
"defect_quantity": 1.0,
"waste_defect_type": "minor_cracks",
"equipment_used": [
"30000000-0000-0000-0000-000000000002"
],
"staff_assigned": [
"50000000-0000-0000-0000-000000000006"
],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Standard production with AI monitoring",
"quality_notes": "Good quality with minimal waste",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": "BASE_TS - 10d 8h 30m"
},
{
"id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5d1",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-SUST-086D-056",
"product_id": "20000000-0000-0000-0000-000000000004",
"product_name": "Napolitana de Chocolate",
"recipe_id": "30000000-0000-0000-0000-000000000004",
"planned_start_time": "BASE_TS - 15d 6h",
"planned_end_time": "BASE_TS - 15d 8h 30m",
"planned_quantity": 80.0,
"planned_duration_minutes": 150,
"actual_start_time": "BASE_TS - 15d 6h",
"actual_end_time": "BASE_TS - 15d 8h 30m",
"actual_quantity": 76.5,
"actual_duration_minutes": 171.1,
"status": "COMPLETED",
"priority": "NORMAL",
"current_process_stage": "baking",
"process_stage_history": [
{
"stage": "preparation",
"start_time": "BASE_TS - 15d 6h",
"end_time": "BASE_TS - 15d 7h",
"duration_minutes": 60,
"status": "completed"
},
{
"stage": "baking",
"start_time": "BASE_TS - 15d 7h",
"end_time": "BASE_TS - 15d 8h 30m",
"duration_minutes": 90,
"status": "completed"
}
],
"pending_quality_checks": [],
"completed_quality_checks": [
{
"id": "70000056-0000-0000-0000-000000000056",
"check_type": "visual_inspection",
"status": "completed",
"result": "passed",
"quality_score": 9.0
}
],
"estimated_cost": 100.0,
"actual_cost": 91.0,
"labor_cost": 50.0,
"material_cost": 41.0,
"overhead_cost": 0.0,
"yield_percentage": 95.625,
"quality_score": 9.0,
"waste_quantity": 3.5,
"defect_quantity": 0.75,
"waste_defect_type": "minor_cracks",
"equipment_used": [
"30000000-0000-0000-0000-000000000002"
],
"staff_assigned": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Consistent production quality",
"quality_notes": "Excellent yield with AI optimization",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": "BASE_TS - 15d 8h 30m"
},
{
"id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5d2",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-SUST-086D-057",
"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 8h 30m",
"planned_quantity": 80.0,
"planned_duration_minutes": 150,
"actual_start_time": "BASE_TS - 20d 6h",
"actual_end_time": "BASE_TS - 20d 8h 30m",
"actual_quantity": 77.0,
"actual_duration_minutes": 160.0,
"status": "COMPLETED",
"priority": "NORMAL",
"current_process_stage": "baking",
"process_stage_history": [
{
"stage": "preparation",
"start_time": "BASE_TS - 20d 6h",
"end_time": "BASE_TS - 20d 7h",
"duration_minutes": 60,
"status": "completed"
},
{
"stage": "baking",
"start_time": "BASE_TS - 20d 7h",
"end_time": "BASE_TS - 20d 8h 30m",
"duration_minutes": 90,
"status": "completed"
}
],
"pending_quality_checks": [],
"completed_quality_checks": [
{
"id": "70000057-0000-0000-0000-000000000057",
"check_type": "visual_inspection",
"status": "completed",
"result": "passed",
"quality_score": 9.1
}
],
"estimated_cost": 100.0,
"actual_cost": 90.75,
"labor_cost": 50.0,
"material_cost": 40.75,
"overhead_cost": 0.0,
"yield_percentage": 96.25,
"quality_score": 9.1,
"waste_quantity": 3.0,
"defect_quantity": 0.6,
"waste_defect_type": "none",
"equipment_used": [
"30000000-0000-0000-0000-000000000002"
],
"staff_assigned": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "High-quality production run",
"quality_notes": "Best yield performance",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": "BASE_TS - 20d 8h 30m"
},
{
"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.6,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 53d.21h"
},
{
"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": 195.9,
"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": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000005"
],
"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 - 51d.21h"
},
{
"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": 216.7,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 49d.21h"
},
{
"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": 166.9,
"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": [
"50000000-0000-0000-0000-000000000006"
],
"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 - 47d.22h"
},
{
"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": 260.9,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 45d.20h"
},
{
"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": 195.9,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 43d.21h"
},
{
"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": 204.7,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 41d.21h"
},
{
"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": 164.0,
"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": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"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 - 39d.22h"
},
{
"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": 251.0,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 37d.20h"
},
{
"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": 197.9,
"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": [
"50000000-0000-0000-0000-000000000006"
],
"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 - 35d.21h"
},
{
"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": 206.6,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 33d.21h"
},
{
"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": 181.7,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 31d.22h"
},
{
"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": 264.6,
"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": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"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 - 29d.20h"
},
{
"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": 189.9,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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 - 28d.22h"
},
{
"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": 193.1,
"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": [
"50000000-0000-0000-0000-000000000001",
"50000000-0000-0000-0000-000000000006"
],
"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 - 27d.21h"
},
{
"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": 158.8,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 26d.21h"
},
{
"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": 255.5,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 25d.20h"
},
{
"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": 176.9,
"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": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"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 - 24d.21h"
},
{
"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": 194.6,
"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": [
"50000000-0000-0000-0000-000000000001",
"50000000-0000-0000-0000-000000000006"
],
"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 - 23d.21h"
},
{
"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": 180.4,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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 - 22d.22h"
},
{
"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": 232.4,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 21d.21h"
},
{
"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": 200.1,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 20d.22h"
},
{
"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": 195.3,
"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": [
"50000000-0000-0000-0000-000000000001",
"50000000-0000-0000-0000-000000000006"
],
"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 - 19d.21h"
},
{
"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": 171.8,
"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": [
"50000000-0000-0000-0000-000000000001",
"50000000-0000-0000-0000-000000000006"
],
"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 - 18d.22h"
},
{
"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": 254.8,
"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": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"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 - 17d.21h"
},
{
"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": 197.0,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 16d.21h"
},
{
"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.2,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 15d.21h"
},
{
"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": 181.4,
"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": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"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 - 14d.21h"
},
{
"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": 230.2,
"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": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"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 - 13d.21h"
},
{
"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": 196.2,
"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": [
"50000000-0000-0000-0000-000000000006"
],
"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 - 12d.21h"
},
{
"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": 227.4,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 11d.21h"
},
{
"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": 189.3,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 10d.21h"
},
{
"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": 229.5,
"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": [
"50000000-0000-0000-0000-000000000006"
],
"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 - 9d.20h"
},
{
"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": 177.5,
"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": [
"50000000-0000-0000-0000-000000000001",
"50000000-0000-0000-0000-000000000006"
],
"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 - 8d.21h"
},
{
"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": 220.6,
"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": [
"50000000-0000-0000-0000-000000000001"
],
"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 - 7d.21h"
},
{
"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": 169.1,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 6d.22h"
},
{
"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": 249.5,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 5d.20h"
},
{
"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": 184.5,
"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": [
"50000000-0000-0000-0000-000000000001",
"50000000-0000-0000-0000-000000000006"
],
"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 - 4d.21h"
},
{
"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": 216.1,
"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": [
"50000000-0000-0000-0000-000000000006",
"50000000-0000-0000-0000-000000000001"
],
"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 - 3d.21h"
},
{
"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": 160.7,
"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": [
"50000000-0000-0000-0000-000000000006"
],
"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 - 2d.22h"
},
{
"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": 253.4,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 1d.20h"
},
{
"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": 201.1,
"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": [
"50000000-0000-0000-0000-000000000005"
],
"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 - 21h"
}
],
"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"
}
]
}