532 lines
18 KiB
JSON
532 lines
18 KiB
JSON
{
|
|
"equipment": [
|
|
{
|
|
"id": "6ad0f2c5-bacb-49e9-b6e3-7e56dbf72b2b",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"name": "Horno Rotativo Industrial 1",
|
|
"manufacturer": "Wiesheu",
|
|
"model": "MATADOR M8 Rack Oven",
|
|
"status": "OPERATIONAL",
|
|
"location": "Central Production - \u00c1rea 1",
|
|
"iot_enabled": false,
|
|
"type": "oven",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS - 15d",
|
|
"next_maintenance_date": "BASE_TS + 75d",
|
|
"capacity": 320,
|
|
"serial_number": null,
|
|
"firmware_version": null,
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": null,
|
|
"uptime_percentage": null,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": null,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"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": "20fce716-1db8-4a9b-beb9-5cba1095e349",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"name": "Horno Rotativo Industrial 2",
|
|
"manufacturer": "Wiesheu",
|
|
"model": "MATADOR M8 Rack Oven",
|
|
"status": "OPERATIONAL",
|
|
"location": "Central Production - \u00c1rea 1",
|
|
"iot_enabled": false,
|
|
"type": "oven",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS - 10d",
|
|
"next_maintenance_date": "BASE_TS + 80d",
|
|
"capacity": 320,
|
|
"serial_number": null,
|
|
"firmware_version": null,
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": null,
|
|
"uptime_percentage": null,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": null,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"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": "b91e6fff-3df2-4634-bd3a-c8b6e310b262",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"name": "Horno Rotativo Industrial 3",
|
|
"manufacturer": "Wachtel",
|
|
"model": "Piccolo Rack Oven",
|
|
"status": "OPERATIONAL",
|
|
"location": "Central Production - \u00c1rea 2",
|
|
"iot_enabled": false,
|
|
"type": "oven",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS - 8d",
|
|
"next_maintenance_date": "BASE_TS + 82d",
|
|
"capacity": 240,
|
|
"serial_number": null,
|
|
"firmware_version": null,
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": null,
|
|
"uptime_percentage": null,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": null,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"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": "6892d6d5-5918-4164-8b5a-4ec305d80001",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"name": "Amasadora Industrial 1",
|
|
"manufacturer": "Diosna",
|
|
"model": "W240 Spiral Mixer",
|
|
"status": "OPERATIONAL",
|
|
"location": "Central Production - \u00c1rea Mezcla",
|
|
"iot_enabled": false,
|
|
"type": "mixer",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS - 12d",
|
|
"next_maintenance_date": "BASE_TS + 78d",
|
|
"capacity": 240,
|
|
"serial_number": null,
|
|
"firmware_version": null,
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": null,
|
|
"uptime_percentage": null,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": null,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"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": "3333fc20-ee58-4ca7-aad7-be336b94abdb",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"name": "Amasadora Industrial 2",
|
|
"manufacturer": "Diosna",
|
|
"model": "W240 Spiral Mixer",
|
|
"status": "OPERATIONAL",
|
|
"location": "Central Production - \u00c1rea Mezcla",
|
|
"iot_enabled": false,
|
|
"type": "mixer",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS - 14d",
|
|
"next_maintenance_date": "BASE_TS + 76d",
|
|
"capacity": 240,
|
|
"serial_number": null,
|
|
"firmware_version": null,
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": null,
|
|
"uptime_percentage": null,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": null,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"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": "19239b69-d93e-475f-8632-f77823e1b583",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"name": "Fermentadora Industrial 1",
|
|
"manufacturer": "Sveba Dahlen",
|
|
"model": "P-Series Proofer",
|
|
"status": "OPERATIONAL",
|
|
"location": "Central Production - \u00c1rea Fermentaci\u00f3n",
|
|
"iot_enabled": false,
|
|
"type": "proofer",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS - 20d",
|
|
"next_maintenance_date": "BASE_TS + 70d",
|
|
"capacity": 200,
|
|
"serial_number": null,
|
|
"firmware_version": null,
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": null,
|
|
"uptime_percentage": null,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": null,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"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": "6da854c6-77b7-49b9-887e-6177442aebbb",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"name": "Divisora Autom\u00e1tica",
|
|
"manufacturer": "Benier",
|
|
"model": "Multi Divider Pro",
|
|
"status": "OPERATIONAL",
|
|
"location": "Central Production - \u00c1rea Divisi\u00f3n",
|
|
"iot_enabled": false,
|
|
"type": "other",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS - 18d",
|
|
"next_maintenance_date": "BASE_TS + 72d",
|
|
"capacity": 3000,
|
|
"serial_number": null,
|
|
"firmware_version": null,
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": null,
|
|
"uptime_percentage": null,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": null,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"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": "a0b631a2-a36b-417e-8926-e97304319649",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"name": "Laminadora Industrial",
|
|
"manufacturer": "Rondo",
|
|
"model": "Doge 630 Sheeter",
|
|
"status": "OPERATIONAL",
|
|
"location": "Central Production - \u00c1rea Laminado",
|
|
"iot_enabled": false,
|
|
"type": "other",
|
|
"install_date": "BASE_TS",
|
|
"last_maintenance_date": "BASE_TS - 22d",
|
|
"next_maintenance_date": "BASE_TS + 68d",
|
|
"capacity": 150,
|
|
"serial_number": null,
|
|
"firmware_version": null,
|
|
"maintenance_interval_days": 90,
|
|
"efficiency_percentage": null,
|
|
"uptime_percentage": null,
|
|
"energy_usage_kwh": null,
|
|
"power_kw": null,
|
|
"weight_kg": null,
|
|
"current_temperature": null,
|
|
"target_temperature": null,
|
|
"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"
|
|
}
|
|
],
|
|
"quality_checks": [
|
|
{
|
|
"id": "70000000-0000-0000-0000-000000000001",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"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": "80000000-0000-4000-a000-000000000001",
|
|
"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": "80000000-0000-4000-a000-000000000001",
|
|
"batch_id": "40000000-0000-0000-0000-000000000001",
|
|
"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": "\u26a0\ufe0f 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": "80000000-0000-4000-a000-000000000001",
|
|
"batch_id": "40000000-0000-0000-0000-000000000001",
|
|
"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": "\u26a0\ufe0f PENDING: Control de calidad programado para lote en producci\u00f3n",
|
|
"corrective_actions": null,
|
|
"created_at": "BASE_TS",
|
|
"updated_at": "BASE_TS"
|
|
}
|
|
],
|
|
"quality_check_templates": [],
|
|
"batches": [
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000001",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
|
"product_id": "20000000-0000-0000-0000-000000000001",
|
|
"batch_number": "BATCH-ENT-0001",
|
|
"status": "completed",
|
|
"quantity_produced": 100,
|
|
"quantity_good": 100,
|
|
"quantity_defective": 0,
|
|
"production_date": "BASE_TS - 1d",
|
|
"expiration_date": "BASE_TS + 3d",
|
|
"production_line": "Linea 1",
|
|
"shift": "morning",
|
|
"produced_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7",
|
|
"approved_by": "80765906-0074-4206-8f58-5867df1975fd",
|
|
"created_at": "BASE_TS - 1d",
|
|
"updated_at": "BASE_TS - 1d",
|
|
"is_active": true,
|
|
"ingredients": [
|
|
{
|
|
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
|
"quantity_used": 50.0,
|
|
"unit": "kg"
|
|
},
|
|
{
|
|
"ingredient_id": "10000000-0000-0000-0000-000000000011",
|
|
"quantity_used": 10.0,
|
|
"unit": "kg"
|
|
}
|
|
],
|
|
"product_name": "Baguette Tradicional",
|
|
"planned_start_time": "BASE_TS",
|
|
"planned_end_time": "BASE_TS + 4h",
|
|
"actual_start_time": "BASE_TS - 1d",
|
|
"actual_end_time": "BASE_TS - 1d + 4h",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 240
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000002",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
|
"product_id": "20000000-0000-0000-0000-000000000002",
|
|
"batch_number": "BATCH-ENT-0002",
|
|
"status": "completed",
|
|
"quantity_produced": 150,
|
|
"quantity_good": 150,
|
|
"quantity_defective": 0,
|
|
"production_date": "BASE_TS - 2d",
|
|
"expiration_date": "BASE_TS + 2d",
|
|
"production_line": "Linea 2",
|
|
"shift": "morning",
|
|
"produced_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7",
|
|
"approved_by": "80765906-0074-4206-8f58-5867df1975fd",
|
|
"created_at": "BASE_TS - 2d",
|
|
"updated_at": "BASE_TS - 2d",
|
|
"is_active": true,
|
|
"ingredients": [
|
|
{
|
|
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
|
"quantity_used": 60.0,
|
|
"unit": "kg"
|
|
},
|
|
{
|
|
"ingredient_id": "10000000-0000-0000-0000-000000000011",
|
|
"quantity_used": 12.0,
|
|
"unit": "kg"
|
|
}
|
|
],
|
|
"product_name": "Croissant de Mantequilla",
|
|
"planned_start_time": "BASE_TS",
|
|
"planned_end_time": "BASE_TS + 4h",
|
|
"actual_start_time": "BASE_TS - 1d",
|
|
"actual_end_time": "BASE_TS - 1d + 4h",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 240
|
|
},
|
|
{
|
|
"id": "40000000-0000-0000-0000-000000000003",
|
|
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
|
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
|
"product_id": "20000000-0000-0000-0000-000000000003",
|
|
"batch_number": "BATCH-ENT-0003",
|
|
"status": "completed",
|
|
"quantity_produced": 200,
|
|
"quantity_good": 200,
|
|
"quantity_defective": 0,
|
|
"production_date": "BASE_TS - 3d",
|
|
"expiration_date": "BASE_TS + 1d",
|
|
"production_line": "Linea 3",
|
|
"shift": "morning",
|
|
"produced_by": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7",
|
|
"approved_by": "80765906-0074-4206-8f58-5867df1975fd",
|
|
"created_at": "BASE_TS - 3d",
|
|
"updated_at": "BASE_TS - 3d",
|
|
"is_active": true,
|
|
"ingredients": [
|
|
{
|
|
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
|
"quantity_used": 70.0,
|
|
"unit": "kg"
|
|
},
|
|
{
|
|
"ingredient_id": "10000000-0000-0000-0000-000000000011",
|
|
"quantity_used": 14.0,
|
|
"unit": "kg"
|
|
}
|
|
],
|
|
"product_name": "Pan de Pueblo con Masa Madre",
|
|
"planned_start_time": "BASE_TS",
|
|
"planned_end_time": "BASE_TS + 4h",
|
|
"actual_start_time": "BASE_TS - 1d",
|
|
"actual_end_time": "BASE_TS - 1d + 4h",
|
|
"planned_quantity": 100.0,
|
|
"planned_duration_minutes": 240
|
|
}
|
|
]
|
|
} |