Files
bakery-ia/shared/demo/fixtures/professional/06-production.json
2025-12-14 20:13:59 +01:00

2034 lines
69 KiB
JSON

{
"equipment": [
{
"id": "30000000-0000-0000-0000-000000000001",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"name": "Horno Rotativo Principal",
"type": "oven",
"model": "Sveba Dahlen DC-16",
"serial_number": "SD-2023-1547",
"location": "Área de Producción - Zona A",
"manufacturer": null,
"firmware_version": null,
"status": "OPERATIONAL",
"install_date": "BASE_TS",
"last_maintenance_date": "BASE_TS",
"next_maintenance_date": "BASE_TS + 90d",
"maintenance_interval_days": 90,
"efficiency_percentage": 92.0,
"uptime_percentage": 90.0,
"energy_usage_kwh": null,
"power_kw": 45.0,
"capacity": 16.0,
"weight_kg": null,
"current_temperature": 220.0,
"target_temperature": 220.0,
"iot_enabled": false,
"iot_protocol": null,
"iot_endpoint": null,
"iot_port": null,
"iot_connection_status": null,
"iot_last_connected": null,
"supports_realtime": false,
"poll_interval_seconds": null,
"temperature_zones": null,
"supports_humidity": false,
"supports_energy_monitoring": false,
"supports_remote_control": false,
"is_active": true,
"notes": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS"
},
{
"id": "30000000-0000-0000-0000-000000000002",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"name": "Amasadora Espiral Grande",
"type": "mixer",
"model": "Diosna SP 120",
"serial_number": "DI-2022-0892",
"location": "Área de Amasado",
"manufacturer": null,
"firmware_version": null,
"status": "OPERATIONAL",
"install_date": "BASE_TS",
"last_maintenance_date": "BASE_TS",
"next_maintenance_date": "BASE_TS + 90d",
"maintenance_interval_days": 60,
"efficiency_percentage": 95.0,
"uptime_percentage": 90.0,
"energy_usage_kwh": null,
"power_kw": 12.0,
"capacity": 120.0,
"weight_kg": null,
"current_temperature": null,
"target_temperature": null,
"iot_enabled": false,
"iot_protocol": null,
"iot_endpoint": null,
"iot_port": null,
"iot_connection_status": null,
"iot_last_connected": null,
"supports_realtime": false,
"poll_interval_seconds": null,
"temperature_zones": null,
"supports_humidity": false,
"supports_energy_monitoring": false,
"supports_remote_control": false,
"is_active": true,
"notes": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS"
},
{
"id": "30000000-0000-0000-0000-000000000003",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"name": "Cámara de Fermentación 1",
"type": "proofer",
"model": "Mondial Forni PF-2000",
"serial_number": "MF-2023-0445",
"location": "Área de Fermentación",
"manufacturer": null,
"firmware_version": null,
"status": "OPERATIONAL",
"install_date": "BASE_TS",
"last_maintenance_date": "BASE_TS",
"next_maintenance_date": "BASE_TS + 90d",
"maintenance_interval_days": 90,
"efficiency_percentage": 88.0,
"uptime_percentage": 90.0,
"energy_usage_kwh": null,
"power_kw": 8.0,
"capacity": 40.0,
"weight_kg": null,
"current_temperature": 28.0,
"target_temperature": 28.0,
"iot_enabled": false,
"iot_protocol": null,
"iot_endpoint": null,
"iot_port": null,
"iot_connection_status": null,
"iot_last_connected": null,
"supports_realtime": false,
"poll_interval_seconds": null,
"temperature_zones": null,
"supports_humidity": false,
"supports_energy_monitoring": false,
"supports_remote_control": false,
"is_active": true,
"notes": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS"
},
{
"id": "30000000-0000-0000-0000-000000000004",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"name": "Congelador Rápido",
"type": "freezer",
"model": "Irinox MF 70.2",
"serial_number": "IR-2021-1234",
"location": "Área de Conservación",
"manufacturer": null,
"firmware_version": null,
"status": "OPERATIONAL",
"install_date": "BASE_TS",
"last_maintenance_date": "BASE_TS",
"next_maintenance_date": "BASE_TS + 90d",
"maintenance_interval_days": 120,
"efficiency_percentage": 90.0,
"uptime_percentage": 90.0,
"energy_usage_kwh": null,
"power_kw": 15.0,
"capacity": 70.0,
"weight_kg": null,
"current_temperature": -40.0,
"target_temperature": -40.0,
"iot_enabled": false,
"iot_protocol": null,
"iot_endpoint": null,
"iot_port": null,
"iot_connection_status": null,
"iot_last_connected": null,
"supports_realtime": false,
"poll_interval_seconds": null,
"temperature_zones": null,
"supports_humidity": false,
"supports_energy_monitoring": false,
"supports_remote_control": false,
"is_active": true,
"notes": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS"
},
{
"id": "30000000-0000-0000-0000-000000000005",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"name": "Amasadora Pequeña",
"type": "mixer",
"model": "Diosna SP 60",
"serial_number": "DI-2020-0334",
"location": "Área de Amasado",
"manufacturer": null,
"firmware_version": null,
"status": "WARNING",
"install_date": "BASE_TS",
"last_maintenance_date": "BASE_TS",
"next_maintenance_date": "BASE_TS + 90d",
"maintenance_interval_days": 60,
"efficiency_percentage": 78.0,
"uptime_percentage": 90.0,
"energy_usage_kwh": null,
"power_kw": 6.0,
"capacity": 60.0,
"weight_kg": null,
"current_temperature": null,
"target_temperature": null,
"iot_enabled": false,
"iot_protocol": null,
"iot_endpoint": null,
"iot_port": null,
"iot_connection_status": null,
"iot_last_connected": null,
"supports_realtime": false,
"poll_interval_seconds": null,
"temperature_zones": null,
"supports_humidity": false,
"supports_energy_monitoring": false,
"supports_remote_control": false,
"is_active": true,
"notes": "Eficiencia reducida. Programar inspección preventiva.",
"created_at": "BASE_TS",
"updated_at": "BASE_TS"
},
{
"id": "30000000-0000-0000-0000-000000000006",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"name": "Horno de Convección Auxiliar",
"type": "oven",
"model": "Unox XBC 1065",
"serial_number": "UN-2019-0667",
"location": "Área de Producción - Zona B",
"manufacturer": null,
"firmware_version": null,
"status": "OPERATIONAL",
"install_date": "BASE_TS",
"last_maintenance_date": "BASE_TS",
"next_maintenance_date": "BASE_TS + 90d",
"maintenance_interval_days": 90,
"efficiency_percentage": 85.0,
"uptime_percentage": 90.0,
"energy_usage_kwh": null,
"power_kw": 28.0,
"capacity": 10.0,
"weight_kg": null,
"current_temperature": 180.0,
"target_temperature": 180.0,
"iot_enabled": false,
"iot_protocol": null,
"iot_endpoint": null,
"iot_port": null,
"iot_connection_status": null,
"iot_last_connected": null,
"supports_realtime": false,
"poll_interval_seconds": null,
"temperature_zones": null,
"supports_humidity": false,
"supports_energy_monitoring": false,
"supports_remote_control": false,
"is_active": true,
"notes": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS"
}
],
"batches": [
{
"id": "40000000-0000-0000-0000-0000000000b1",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-LATE-0001",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS - 2h",
"planned_end_time": "BASE_TS - 0h",
"planned_quantity": 100.0,
"planned_duration_minutes": 120,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "HIGH",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": [
{
"id": "70000000-0000-0000-0000-000000000004",
"check_type": "visual_inspection",
"status": "pending"
}
],
"completed_quality_checks": null,
"estimated_cost": 150.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": true,
"is_special_recipe": false,
"is_ai_assisted": false,
"production_notes": "⚠️ EDGE CASE: Production should have started 2 hours ago - will trigger OVERDUE_BATCH alert",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-0000000000b2",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-INPROGRESS-0001",
"product_id": "20000000-0000-0000-0000-000000000002",
"product_name": "Croissant de Mantequilla Artesanal",
"recipe_id": "30000000-0000-0000-0000-000000000002",
"planned_start_time": "BASE_TS - 1h",
"planned_end_time": "BASE_TS + 1h",
"planned_quantity": 80.0,
"planned_duration_minutes": 120,
"actual_start_time": "BASE_TS - 1h45m",
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "IN_PROGRESS",
"priority": "MEDIUM",
"current_process_stage": "baking",
"process_stage_history": [
{
"stage": "preparation",
"start_time": "BASE_TS - 2h",
"end_time": "BASE_TS - 1h45m",
"status": "completed"
}
],
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 120.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000002"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "⚠️ EDGE CASE: Batch started 15 minutes late but now in progress - will show active production status",
"quality_notes": null,
"delay_reason": "Equipment setup delay",
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-0000000000b3",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-UPCOMING-0001",
"product_id": "20000000-0000-0000-0000-000000000003",
"product_name": "Pan Integral",
"recipe_id": "30000000-0000-0000-0000-000000000003",
"planned_start_time": "BASE_TS + 1h30m",
"planned_end_time": "BASE_TS + 4h30m",
"planned_quantity": 60.0,
"planned_duration_minutes": 180,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "MEDIUM",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 90.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000003"
],
"staff_assigned": [],
"station_id": "STATION-03",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "⚠️ EDGE CASE: Upcoming batch scheduled to start in 1.5 hours - will show in planning view",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000001",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250115-001",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS - 7d 6h",
"planned_end_time": "BASE_TS - 7d 8h 45m",
"planned_quantity": 100.0,
"planned_duration_minutes": 165,
"actual_start_time": "BASE_TS - 7d 6h",
"actual_end_time": "BASE_TS - 7d 8h 45m",
"actual_quantity": 98.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "MEDIUM",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": [
{
"id": "70000000-0000-0000-0000-000000000001",
"check_type": "visual_inspection",
"status": "completed",
"result": "passed",
"quality_score": 9.5
}
],
"estimated_cost": 150.0,
"actual_cost": 148.5,
"labor_cost": 80.0,
"material_cost": 55.0,
"overhead_cost": 13.5,
"yield_percentage": 98.0,
"quality_score": 9.5,
"waste_quantity": 2.0,
"defect_quantity": 2.0,
"waste_defect_type": "burnt",
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Producción estándar, sin incidencias",
"quality_notes": "2 baguettes quemadas por exceso de temperatura",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000002",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250115-002",
"product_id": "20000000-0000-0000-0000-000000000002",
"product_name": "Croissant de Mantequilla Artesanal",
"recipe_id": "30000000-0000-0000-0000-000000000002",
"planned_start_time": "BASE_TS - 7d 5h",
"planned_end_time": "BASE_TS - 7d 9h",
"planned_quantity": 120.0,
"planned_duration_minutes": 240,
"actual_start_time": "BASE_TS - 7d 5h",
"actual_end_time": "BASE_TS - 7d 9h",
"actual_quantity": 115.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "HIGH",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": [
{
"id": "70000000-0000-0000-0000-000000000002",
"check_type": "dimensional_check",
"status": "completed",
"result": "passed",
"quality_score": 9.2
}
],
"estimated_cost": 280.0,
"actual_cost": 275.0,
"labor_cost": 120.0,
"material_cost": 125.0,
"overhead_cost": 30.0,
"yield_percentage": 95.8,
"quality_score": 9.2,
"waste_quantity": 3.0,
"defect_quantity": 3.0,
"waste_defect_type": "misshapen",
"equipment_used": [
"30000000-0000-0000-0000-000000000002",
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Laminado perfecto, buen desarrollo",
"quality_notes": "3 croissants con forma irregular por laminado desigual, 2 descartados",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000003",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250116-001",
"product_id": "20000000-0000-0000-0000-000000000003",
"product_name": "Pan de Pueblo con Masa Madre",
"recipe_id": "30000000-0000-0000-0000-000000000003",
"planned_start_time": "BASE_TS - 6d 7h 30m",
"planned_end_time": "BASE_TS - 6d 12h 30m",
"planned_quantity": 80.0,
"planned_duration_minutes": 300,
"actual_start_time": "BASE_TS - 6d 7h 30m",
"actual_end_time": "BASE_TS - 6d 12h 30m",
"actual_quantity": 80.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "MEDIUM",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 200.0,
"actual_cost": 195.0,
"labor_cost": 90.0,
"material_cost": 80.0,
"overhead_cost": 25.0,
"yield_percentage": 100.0,
"quality_score": 98.0,
"waste_quantity": 0.0,
"defect_quantity": 0.0,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": true,
"is_ai_assisted": true,
"production_notes": "Excelente fermentación de la masa madre",
"quality_notes": "Batch perfecto, sin desperdicio",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000004",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250116-002",
"product_id": "20000000-0000-0000-0000-000000000004",
"product_name": "Napolitana de Chocolate",
"recipe_id": "30000000-0000-0000-0000-000000000004",
"planned_start_time": "BASE_TS - 6d 6h",
"planned_end_time": "BASE_TS - 6d 9h",
"planned_quantity": 90.0,
"planned_duration_minutes": 180,
"actual_start_time": "BASE_TS - 6d 6h",
"actual_end_time": "BASE_TS - 6d 9h",
"actual_quantity": 88.0,
"actual_duration_minutes": null,
"status": "QUARANTINED",
"priority": "MEDIUM",
"current_process_stage": "quality_check",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": [
{
"id": "70000000-0000-0000-0000-000000000003",
"check_type": "taste_test",
"status": "completed",
"result": "failed",
"quality_score": 6.5
}
],
"estimated_cost": 220.0,
"actual_cost": 218.0,
"labor_cost": 95.0,
"material_cost": 98.0,
"overhead_cost": 25.0,
"yield_percentage": 97.8,
"quality_score": 6.5,
"waste_quantity": 1.0,
"defect_quantity": 10.0,
"waste_defect_type": "off_taste",
"equipment_used": [
"30000000-0000-0000-0000-000000000001",
"30000000-0000-0000-0000-000000000002"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": false,
"production_notes": "⚠️ CRITICAL: Lote en cuarentena por fallo en control de calidad",
"quality_notes": "Sabor amargo en chocolate - Investigación en curso con proveedor",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000005",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250117-001",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS - 5d 6h",
"planned_end_time": "BASE_TS - 5d 8h 45m",
"planned_quantity": 120.0,
"planned_duration_minutes": 165,
"actual_start_time": "BASE_TS - 5d 6h",
"actual_end_time": "BASE_TS - 5d 8h 45m",
"actual_quantity": 118.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "HIGH",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 180.0,
"actual_cost": 177.0,
"labor_cost": 95.0,
"material_cost": 65.0,
"overhead_cost": 17.0,
"yield_percentage": 98.3,
"quality_score": 96.0,
"waste_quantity": 1.5,
"defect_quantity": 0.5,
"waste_defect_type": "underproofed",
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Lote grande para pedido especial",
"quality_notes": "1.5kg por fermentación insuficiente",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000006",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250117-002",
"product_id": "20000000-0000-0000-0000-000000000002",
"product_name": "Croissant de Mantequilla Artesanal",
"recipe_id": "30000000-0000-0000-0000-000000000002",
"planned_start_time": "BASE_TS - 5d 5h",
"planned_end_time": "BASE_TS - 5d 9h",
"planned_quantity": 100.0,
"planned_duration_minutes": 240,
"actual_start_time": "BASE_TS - 5d 5h",
"actual_end_time": "BASE_TS - 5d 9h",
"actual_quantity": 96.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "MEDIUM",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 240.0,
"actual_cost": 238.0,
"labor_cost": 105.0,
"material_cost": 105.0,
"overhead_cost": 28.0,
"yield_percentage": 96.0,
"quality_score": 90.0,
"waste_quantity": 2.0,
"defect_quantity": 2.0,
"waste_defect_type": "temperature_issues",
"equipment_used": [
"30000000-0000-0000-0000-000000000002",
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": false,
"production_notes": "Algunos croissants con desarrollo irregular",
"quality_notes": "2kg descartados por problemas de temperatura en fermentación",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000007",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250118-001",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS - 4d 6h",
"planned_end_time": "BASE_TS - 4d 8h 45m",
"planned_quantity": 100.0,
"planned_duration_minutes": 165,
"actual_start_time": "BASE_TS - 4d 6h",
"actual_end_time": "BASE_TS - 4d 8h 45m",
"actual_quantity": 99.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "MEDIUM",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 150.0,
"actual_cost": 149.0,
"labor_cost": 80.0,
"material_cost": 55.0,
"overhead_cost": 14.0,
"yield_percentage": 99.0,
"quality_score": 97.0,
"waste_quantity": 1.0,
"defect_quantity": 0.0,
"waste_defect_type": "burnt",
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Excelente resultado",
"quality_notes": "1kg quemado por ajuste de horno",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000008",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250118-002",
"product_id": "20000000-0000-0000-0000-000000000003",
"product_name": "Pan de Pueblo con Masa Madre",
"recipe_id": "30000000-0000-0000-0000-000000000003",
"planned_start_time": "BASE_TS - 4d 7h",
"planned_end_time": "BASE_TS - 4d 12h",
"planned_quantity": 60.0,
"planned_duration_minutes": 300,
"actual_start_time": "BASE_TS - 4d 7h",
"actual_end_time": "BASE_TS - 4d 12h",
"actual_quantity": 60.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "LOW",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 155.0,
"actual_cost": 152.0,
"labor_cost": 70.0,
"material_cost": 65.0,
"overhead_cost": 17.0,
"yield_percentage": 100.0,
"quality_score": 99.0,
"waste_quantity": 0.0,
"defect_quantity": 0.0,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": true,
"is_ai_assisted": true,
"production_notes": "Masa madre en punto óptimo",
"quality_notes": "Batch perfecto, sin desperdicios",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000009",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250119-001",
"product_id": "20000000-0000-0000-0000-000000000002",
"product_name": "Croissant de Mantequilla Artesanal",
"recipe_id": "30000000-0000-0000-0000-000000000002",
"planned_start_time": "BASE_TS - 3d 5h",
"planned_end_time": "BASE_TS - 3d 9h",
"planned_quantity": 150.0,
"planned_duration_minutes": 240,
"actual_start_time": "BASE_TS - 3d 5h",
"actual_end_time": "BASE_TS - 3d 9h",
"actual_quantity": 145.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "URGENT",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 350.0,
"actual_cost": 345.0,
"labor_cost": 150.0,
"material_cost": 155.0,
"overhead_cost": 40.0,
"yield_percentage": 96.7,
"quality_score": 93.0,
"waste_quantity": 3.0,
"defect_quantity": 2.0,
"waste_defect_type": "burnt",
"equipment_used": [
"30000000-0000-0000-0000-000000000002",
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": true,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Pedido urgente de evento corporativo",
"quality_notes": "3kg quemados por presión de tiempo, 2kg descartados",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000010",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250119-002",
"product_id": "20000000-0000-0000-0000-000000000004",
"product_name": "Napolitana de Chocolate",
"recipe_id": "30000000-0000-0000-0000-000000000004",
"planned_start_time": "BASE_TS - 3d 6h 30m",
"planned_end_time": "BASE_TS - 3d 9h 30m",
"planned_quantity": 80.0,
"planned_duration_minutes": 180,
"actual_start_time": "BASE_TS - 3d 6h 30m",
"actual_end_time": "BASE_TS - 3d 9h 30m",
"actual_quantity": 79.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "MEDIUM",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 195.0,
"actual_cost": 192.0,
"labor_cost": 85.0,
"material_cost": 85.0,
"overhead_cost": 22.0,
"yield_percentage": 98.8,
"quality_score": 95.0,
"waste_quantity": 0.5,
"defect_quantity": 0.5,
"waste_defect_type": "misshapen",
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Buen resultado general",
"quality_notes": "0.5kg con forma irregular, descartados",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000011",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250120-001",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS - 2d 6h",
"planned_end_time": "BASE_TS - 2d 8h 45m",
"planned_quantity": 110.0,
"planned_duration_minutes": 165,
"actual_start_time": "BASE_TS - 2d 6h",
"actual_end_time": "BASE_TS - 2d 8h 45m",
"actual_quantity": 108.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "MEDIUM",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 165.0,
"actual_cost": 162.0,
"labor_cost": 88.0,
"material_cost": 60.0,
"overhead_cost": 14.0,
"yield_percentage": 98.2,
"quality_score": 96.0,
"waste_quantity": 1.5,
"defect_quantity": 0.5,
"waste_defect_type": "underproofed",
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Producción estándar",
"quality_notes": "1.5kg con fermentación insuficiente, 0.5kg descartados",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000012",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250120-002",
"product_id": "20000000-0000-0000-0000-000000000003",
"product_name": "Pan de Pueblo con Masa Madre",
"recipe_id": "30000000-0000-0000-0000-000000000003",
"planned_start_time": "BASE_TS - 2d 7h 30m",
"planned_end_time": "BASE_TS - 2d 12h 30m",
"planned_quantity": 70.0,
"planned_duration_minutes": 300,
"actual_start_time": "BASE_TS - 2d 7h 30m",
"actual_end_time": "BASE_TS - 2d 12h 30m",
"actual_quantity": 70.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "MEDIUM",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 175.0,
"actual_cost": 172.0,
"labor_cost": 80.0,
"material_cost": 72.0,
"overhead_cost": 20.0,
"yield_percentage": 100.0,
"quality_score": 98.0,
"waste_quantity": 0.0,
"defect_quantity": 0.0,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": true,
"is_ai_assisted": true,
"production_notes": "Fermentación perfecta",
"quality_notes": "Batch perfecto, optimizado por IA",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000013",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250121-001",
"product_id": "20000000-0000-0000-0000-000000000002",
"product_name": "Croissant de Mantequilla Artesanal",
"recipe_id": "30000000-0000-0000-0000-000000000002",
"planned_start_time": "BASE_TS - 1d 5h",
"planned_end_time": "BASE_TS - 1d 9h",
"planned_quantity": 130.0,
"planned_duration_minutes": 240,
"actual_start_time": "BASE_TS - 1d 5h",
"actual_end_time": "BASE_TS - 1d 9h",
"actual_quantity": 125.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "HIGH",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 310.0,
"actual_cost": 305.0,
"labor_cost": 135.0,
"material_cost": 138.0,
"overhead_cost": 32.0,
"yield_percentage": 96.2,
"quality_score": 94.0,
"waste_quantity": 3.0,
"defect_quantity": 2.0,
"waste_defect_type": "burnt",
"equipment_used": [
"30000000-0000-0000-0000-000000000002",
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": false,
"production_notes": "Demanda elevada del fin de semana",
"quality_notes": "3kg quemados por sobrecarga de horno, 2kg descartados",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000014",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250121-002",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS - 1d 6h 30m",
"planned_end_time": "BASE_TS - 1d 9h 15m",
"planned_quantity": 120.0,
"planned_duration_minutes": 165,
"actual_start_time": "BASE_TS - 1d 6h 30m",
"actual_end_time": "BASE_TS - 1d 9h 15m",
"actual_quantity": 118.0,
"actual_duration_minutes": null,
"status": "COMPLETED",
"priority": "HIGH",
"current_process_stage": "packaging",
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 180.0,
"actual_cost": 178.0,
"labor_cost": 95.0,
"material_cost": 66.0,
"overhead_cost": 17.0,
"yield_percentage": 98.3,
"quality_score": 97.0,
"waste_quantity": 1.5,
"defect_quantity": 0.5,
"waste_defect_type": "burnt",
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Alta demanda de fin de semana",
"quality_notes": "1.5kg ligeramente quemados, 0.5kg descartados",
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000015",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250122-001",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS + 6h",
"planned_end_time": "BASE_TS + 8h 45m",
"planned_quantity": 100.0,
"planned_duration_minutes": 165,
"actual_start_time": "BASE_TS + 6h",
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "IN_PROGRESS",
"priority": "MEDIUM",
"current_process_stage": "baking",
"process_stage_history": null,
"pending_quality_checks": [
{
"id": "70000000-0000-0000-0000-000000000004",
"check_type": "visual_inspection",
"status": "pending"
}
],
"completed_quality_checks": null,
"estimated_cost": 150.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Producción en curso con predicción de IA",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000016",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250122-002",
"product_id": "20000000-0000-0000-0000-000000000002",
"product_name": "Croissant de Mantequilla Artesanal",
"recipe_id": "30000000-0000-0000-0000-000000000002",
"planned_start_time": "BASE_TS + 8h",
"planned_end_time": "BASE_TS + 12h",
"planned_quantity": 100.0,
"planned_duration_minutes": 240,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "MEDIUM",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 240.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000002",
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Pendiente de inicio - cantidad optimizada por IA",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000017",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250123-001",
"product_id": "20000000-0000-0000-0000-000000000003",
"product_name": "Pan de Pueblo con Masa Madre",
"recipe_id": "30000000-0000-0000-0000-000000000003",
"planned_start_time": "BASE_TS + 1d 7h",
"planned_end_time": "BASE_TS + 1d 12h",
"planned_quantity": 75.0,
"planned_duration_minutes": 300,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "MEDIUM",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 185.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": true,
"is_ai_assisted": true,
"production_notes": "Planificado para mañana con predicción de demanda IA",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-000000000018",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-20250123-002",
"product_id": "20000000-0000-0000-0000-000000000004",
"product_name": "Napolitana de Chocolate",
"recipe_id": "30000000-0000-0000-0000-000000000004",
"planned_start_time": "BASE_TS + 1d 6h",
"planned_end_time": "BASE_TS + 1d 9h",
"planned_quantity": 85.0,
"planned_duration_minutes": 180,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "LOW",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 210.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": false,
"production_notes": "Planificado para mañana",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-999999999001",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-TODAY-001",
"product_id": "20000000-0000-0000-0000-000000000002",
"product_name": "Croissant de Mantequilla Artesanal",
"recipe_id": "30000000-0000-0000-0000-000000000002",
"planned_start_time": "BASE_TS + 6h",
"planned_end_time": "BASE_TS + 10h",
"planned_quantity": 120.0,
"planned_duration_minutes": 240,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "HIGH",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 280.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000002",
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Lote programado para hoy - Demanda prevista alta",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-999999999002",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-TODAY-002",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS + 8h 30m",
"planned_end_time": "BASE_TS + 11h 15m",
"planned_quantity": 100.0,
"planned_duration_minutes": 165,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "MEDIUM",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 150.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "Producción diaria programada",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-999999999003",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-TODAY-003",
"product_id": "20000000-0000-0000-0000-000000000003",
"product_name": "Pan de Pueblo con Masa Madre",
"recipe_id": "30000000-0000-0000-0000-000000000003",
"planned_start_time": "BASE_TS + 10h",
"planned_end_time": "BASE_TS + 15h",
"planned_quantity": 60.0,
"planned_duration_minutes": 300,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "MEDIUM",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 180.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": true,
"is_ai_assisted": true,
"production_notes": "Masa madre preparada ayer - Listo para horneado",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-0000000000a1",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-CHOCOLATE-CAKE-EVENING",
"product_id": "20000000-0000-0000-0000-000000000004",
"product_name": "Tarta de Chocolate Premium",
"recipe_id": "30000000-0000-0000-0000-000000000004",
"planned_start_time": "BASE_TS + 17h",
"planned_end_time": "BASE_TS + 20h",
"planned_quantity": 5.0,
"planned_duration_minutes": 180,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "HIGH",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 380.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-03",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": true,
"is_ai_assisted": true,
"production_notes": "⚠️ DASHBOARD: Scheduled in 5 hours but missing 3kg dark chocolate (CHO-NEG-001) - Will trigger BATCH_AT_RISK alert",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-0000000000a2",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-CROISSANTS-TOMORROW",
"product_id": "20000000-0000-0000-0000-000000000002",
"product_name": "Croissant de Mantequilla Artesanal",
"recipe_id": "30000000-0000-0000-0000-000000000002",
"planned_start_time": "BASE_TS + 1d 5h",
"planned_end_time": "BASE_TS + 1d 9h",
"planned_quantity": 150.0,
"planned_duration_minutes": 240,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "HIGH",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 420.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000002",
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-02",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "⚠️ DASHBOARD: Tomorrow morning batch - Depends on yeast (LEV-SEC-001) and butter (MAN-SAL-001) - Coordinates with PO approval escalation scenario",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
},
{
"id": "40000000-0000-0000-0000-0000000000a3",
"tenant_id": "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6",
"batch_number": "BATCH-BAGUETTES-001",
"product_id": "20000000-0000-0000-0000-000000000001",
"product_name": "Baguette Francesa Tradicional",
"recipe_id": "30000000-0000-0000-0000-000000000001",
"planned_start_time": "BASE_TS + 14h",
"planned_end_time": "BASE_TS + 16h 45m",
"planned_quantity": 80.0,
"planned_duration_minutes": 165,
"actual_start_time": null,
"actual_end_time": null,
"actual_quantity": null,
"actual_duration_minutes": null,
"status": "PENDING",
"priority": "MEDIUM",
"current_process_stage": null,
"process_stage_history": null,
"pending_quality_checks": null,
"completed_quality_checks": null,
"estimated_cost": 120.0,
"actual_cost": null,
"labor_cost": null,
"material_cost": null,
"overhead_cost": null,
"yield_percentage": null,
"quality_score": null,
"waste_quantity": null,
"defect_quantity": null,
"waste_defect_type": null,
"equipment_used": [
"30000000-0000-0000-0000-000000000001"
],
"staff_assigned": [],
"station_id": "STATION-01",
"order_id": null,
"forecast_id": null,
"is_rush_order": false,
"is_special_recipe": false,
"is_ai_assisted": true,
"production_notes": "⚠️ DASHBOARD: At risk due to flour (HAR-T55-001) running low - Will be affected if delivery is late",
"quality_notes": null,
"delay_reason": null,
"cancellation_reason": null,
"reasoning_data": null,
"created_at": "BASE_TS",
"updated_at": "BASE_TS",
"completed_at": null
}
],
"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"
}
]
}