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