{ "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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" } ] }