demo seed change
This commit is contained in:
254
shared/demo/fixtures/enterprise/children/barcelona.json
Normal file
254
shared/demo/fixtures/enterprise/children/barcelona.json
Normal file
@@ -0,0 +1,254 @@
|
||||
{
|
||||
"location": {
|
||||
"id": "B0000000-0000-4000-a000-000000000001",
|
||||
"parent_tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Barcelona Gràcia",
|
||||
"location_code": "ENT-BCN-001",
|
||||
"city": "Barcelona",
|
||||
"zone": "Gràcia",
|
||||
"address": "Carrer de Verdi, 28",
|
||||
"postal_code": "08012",
|
||||
"country": "España",
|
||||
"latitude": 41.4036,
|
||||
"longitude": 2.1561,
|
||||
"status": "ACTIVE",
|
||||
"opening_hours": "07:30-21:30",
|
||||
"daily_capacity": 1800,
|
||||
"storage_capacity_kg": 6000,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_location": true,
|
||||
"location_type": "retail_and_wholesale",
|
||||
"manager_id": "50000000-0000-0000-0000-000000000012",
|
||||
"staff_count": 15,
|
||||
"equipment": [
|
||||
"30000000-0000-0000-0000-000000000002"
|
||||
],
|
||||
"shared_ingredients": [
|
||||
"10000000-0000-0000-0000-000000000001",
|
||||
"10000000-0000-0000-0000-000000000002",
|
||||
"10000000-0000-0000-0000-000000000003",
|
||||
"20000000-0000-0000-0000-000000000001",
|
||||
"20000000-0000-0000-0000-000000000002"
|
||||
],
|
||||
"shared_recipes": [
|
||||
"30000000-0000-0000-0000-000000000001",
|
||||
"30000000-0000-0000-0000-000000000002"
|
||||
]
|
||||
},
|
||||
"local_inventory": [
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
||||
"quantity": 180.0,
|
||||
"location": "Barcelona Gràcia - Storage",
|
||||
"production_stage": "RAW_MATERIAL",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-02-20T00:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "BCN-HAR-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Warehouse - Barcelona"
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000002002",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000002",
|
||||
"quantity": 45.0,
|
||||
"location": "Barcelona Gràcia - Cold Storage",
|
||||
"production_stage": "RAW_MATERIAL",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-01-25T00:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000002",
|
||||
"batch_number": "BCN-MAN-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Warehouse - Barcelona"
|
||||
},
|
||||
{
|
||||
"id": "20000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 65.0,
|
||||
"location": "Barcelona Gràcia - Display",
|
||||
"production_stage": "FINISHED_PRODUCT",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-01-16T06:00:00Z",
|
||||
"supplier_id": null,
|
||||
"batch_number": "BCN-BAG-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Production Facility - Barcelona"
|
||||
},
|
||||
{
|
||||
"id": "20000000-0000-0000-0000-000000002002",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 30.0,
|
||||
"location": "Barcelona Gràcia - Display",
|
||||
"production_stage": "FINISHED_PRODUCT",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-01-16T08:00:00Z",
|
||||
"supplier_id": null,
|
||||
"batch_number": "BCN-CRO-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Production Facility - Barcelona"
|
||||
}
|
||||
],
|
||||
"local_sales": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000004001",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-15T08:30:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity_sold": 35.0,
|
||||
"unit_price": 2.85,
|
||||
"total_revenue": 99.75,
|
||||
"sales_channel": "RETAIL",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venda local a Barcelona Gràcia - matí",
|
||||
"enterprise_location_sale": true,
|
||||
"parent_order_id": "60000000-0000-0000-0000-000000003001"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000004002",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-15T09:15:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity_sold": 18.0,
|
||||
"unit_price": 3.95,
|
||||
"total_revenue": 71.10,
|
||||
"sales_channel": "RETAIL",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venda de croissants a Barcelona Gràcia",
|
||||
"enterprise_location_sale": true,
|
||||
"parent_order_id": "60000000-0000-0000-0000-000000003002"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000004003",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-14T17:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity_sold": 28.0,
|
||||
"unit_price": 2.85,
|
||||
"total_revenue": 79.80,
|
||||
"sales_channel": "RETAIL",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venda de tarda a Barcelona Gràcia",
|
||||
"enterprise_location_sale": true,
|
||||
"parent_order_id": "60000000-0000-0000-0000-000000003003"
|
||||
}
|
||||
],
|
||||
"local_orders": [
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000003001",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"order_number": "ORD-BCN-GRA-20250115-001",
|
||||
"customer_name": "Restaurant El Vaixell",
|
||||
"customer_email": "comandes@elvaixell.cat",
|
||||
"order_date": "2025-01-15T07:00:00Z",
|
||||
"delivery_date": "2025-01-15T08:30:00Z",
|
||||
"status": "DELIVERED",
|
||||
"total_amount": 99.75,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Comanda matinal per restaurant local",
|
||||
"enterprise_location_order": true
|
||||
},
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000003002",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"order_number": "ORD-BCN-GRA-20250115-002",
|
||||
"customer_name": "Cafeteria La Perla",
|
||||
"customer_email": "info@laperla.cat",
|
||||
"order_date": "2025-01-15T06:30:00Z",
|
||||
"delivery_date": "2025-01-15T09:00:00Z",
|
||||
"status": "DELIVERED",
|
||||
"total_amount": 71.10,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Croissants per cafeteria",
|
||||
"enterprise_location_order": true
|
||||
},
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000003003",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"order_number": "ORD-BCN-GRA-20250114-003",
|
||||
"customer_name": "Hotel Casa Fuster",
|
||||
"customer_email": "compras@casafuster.com",
|
||||
"order_date": "2025-01-14T14:00:00Z",
|
||||
"delivery_date": "2025-01-14T17:00:00Z",
|
||||
"status": "DELIVERED",
|
||||
"total_amount": 79.80,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Comanda de tarda per hotel",
|
||||
"enterprise_location_order": true
|
||||
}
|
||||
],
|
||||
"local_production_batches": [
|
||||
{
|
||||
"id": "40000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"batch_number": "BCN-BATCH-20250115-001",
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"planned_quantity": 100.0,
|
||||
"actual_quantity": 98.0,
|
||||
"status": "COMPLETED",
|
||||
"planned_start_time": "2025-01-15T04:00:00Z",
|
||||
"actual_start_time": "2025-01-15T04:05:00Z",
|
||||
"planned_end_time": "2025-01-15T06:00:00Z",
|
||||
"actual_end_time": "2025-01-15T06:10:00Z",
|
||||
"equipment_id": "30000000-0000-0000-0000-000000000002",
|
||||
"operator_id": "50000000-0000-0000-0000-000000000012",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Producció matinal de baguettes a Barcelona",
|
||||
"enterprise_location_production": true
|
||||
},
|
||||
{
|
||||
"id": "40000000-0000-0000-0000-000000002002",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"batch_number": "BCN-BATCH-20250115-002",
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000002",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"planned_quantity": 50.0,
|
||||
"actual_quantity": null,
|
||||
"status": "IN_PROGRESS",
|
||||
"planned_start_time": "2025-01-15T05:00:00Z",
|
||||
"actual_start_time": "2025-01-15T05:00:00Z",
|
||||
"planned_end_time": "2025-01-15T07:30:00Z",
|
||||
"actual_end_time": null,
|
||||
"equipment_id": "30000000-0000-0000-0000-000000000002",
|
||||
"operator_id": "50000000-0000-0000-0000-000000000013",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Producció de croissants en curs a Barcelona",
|
||||
"enterprise_location_production": true
|
||||
}
|
||||
],
|
||||
"local_forecasts": [
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "2025-01-16T00:00:00Z",
|
||||
"predicted_quantity": 85.0,
|
||||
"confidence_score": 0.91,
|
||||
"forecast_horizon_days": 1,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Previsió de demanda diària per Barcelona Gràcia",
|
||||
"enterprise_location_forecast": true
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000002002",
|
||||
"tenant_id": "B0000000-0000-4000-a000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "2025-01-16T00:00:00Z",
|
||||
"predicted_quantity": 45.0,
|
||||
"confidence_score": 0.89,
|
||||
"forecast_horizon_days": 1,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Previsió de croissants per demà a Barcelona",
|
||||
"enterprise_location_forecast": true
|
||||
}
|
||||
]
|
||||
}
|
||||
83
shared/demo/fixtures/enterprise/children/madrid.json
Normal file
83
shared/demo/fixtures/enterprise/children/madrid.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"location": {
|
||||
"id": "A0000000-0000-4000-a000-000000000001",
|
||||
"parent_tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Madrid Centro",
|
||||
"location_code": "ENT-MAD-001",
|
||||
"city": "Madrid",
|
||||
"zone": "Centro",
|
||||
"address": "Calle Mayor, 15",
|
||||
"postal_code": "28013",
|
||||
"country": "España",
|
||||
"latitude": 40.4168,
|
||||
"longitude": -3.7038,
|
||||
"status": "ACTIVE",
|
||||
"opening_hours": "07:00-21:00",
|
||||
"daily_capacity": 1500,
|
||||
"storage_capacity_kg": 5000,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_location": true,
|
||||
"location_type": "retail_and_wholesale",
|
||||
"manager_id": "50000000-0000-0000-0000-000000000011",
|
||||
"staff_count": 12,
|
||||
"equipment": [
|
||||
"30000000-0000-0000-0000-000000000001"
|
||||
],
|
||||
"shared_ingredients": [
|
||||
"10000000-0000-0000-0000-000000000001",
|
||||
"10000000-0000-0000-0000-000000000002",
|
||||
"20000000-0000-0000-0000-000000000001"
|
||||
],
|
||||
"shared_recipes": [
|
||||
"30000000-0000-0000-0000-000000000001"
|
||||
]
|
||||
},
|
||||
"local_inventory": [
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000001501",
|
||||
"tenant_id": "A0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
||||
"quantity": 150.0,
|
||||
"location": "Madrid Centro - Storage",
|
||||
"production_stage": "RAW_MATERIAL",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-02-15T00:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "MAD-HAR-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Warehouse - Madrid"
|
||||
},
|
||||
{
|
||||
"id": "20000000-0000-0000-0000-000000001501",
|
||||
"tenant_id": "A0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 50.0,
|
||||
"location": "Madrid Centro - Display",
|
||||
"production_stage": "FINISHED_PRODUCT",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-01-16T06:00:00Z",
|
||||
"supplier_id": null,
|
||||
"batch_number": "MAD-BAG-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Production Facility - Madrid"
|
||||
}
|
||||
],
|
||||
"local_sales": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000003001",
|
||||
"tenant_id": "A0000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-15T08:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity_sold": 25.0,
|
||||
"unit_price": 2.75,
|
||||
"total_revenue": 68.75,
|
||||
"sales_channel": "RETAIL",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venta local en Madrid Centro",
|
||||
"enterprise_location_sale": true,
|
||||
"parent_order_id": "60000000-0000-0000-0000-000000002001"
|
||||
}
|
||||
]
|
||||
}
|
||||
314
shared/demo/fixtures/enterprise/children/valencia.json
Normal file
314
shared/demo/fixtures/enterprise/children/valencia.json
Normal file
@@ -0,0 +1,314 @@
|
||||
{
|
||||
"location": {
|
||||
"id": "V0000000-0000-4000-a000-000000000001",
|
||||
"parent_tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Valencia Ruzafa",
|
||||
"location_code": "ENT-VLC-001",
|
||||
"city": "Valencia",
|
||||
"zone": "Ruzafa",
|
||||
"address": "Calle Sueca, 42",
|
||||
"postal_code": "46006",
|
||||
"country": "España",
|
||||
"latitude": 39.4623,
|
||||
"longitude": -0.3645,
|
||||
"status": "ACTIVE",
|
||||
"opening_hours": "07:00-21:00",
|
||||
"daily_capacity": 1600,
|
||||
"storage_capacity_kg": 5500,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_location": true,
|
||||
"location_type": "retail_and_wholesale",
|
||||
"manager_id": "50000000-0000-0000-0000-000000000013",
|
||||
"staff_count": 13,
|
||||
"equipment": [
|
||||
"30000000-0000-0000-0000-000000000003"
|
||||
],
|
||||
"shared_ingredients": [
|
||||
"10000000-0000-0000-0000-000000000001",
|
||||
"10000000-0000-0000-0000-000000000002",
|
||||
"10000000-0000-0000-0000-000000000004",
|
||||
"20000000-0000-0000-0000-000000000001",
|
||||
"20000000-0000-0000-0000-000000000003"
|
||||
],
|
||||
"shared_recipes": [
|
||||
"30000000-0000-0000-0000-000000000001",
|
||||
"30000000-0000-0000-0000-000000000003"
|
||||
]
|
||||
},
|
||||
"local_inventory": [
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000003001",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
||||
"quantity": 165.0,
|
||||
"location": "Valencia Ruzafa - Storage",
|
||||
"production_stage": "RAW_MATERIAL",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-02-18T00:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"batch_number": "VLC-HAR-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Warehouse - Valencia"
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000003002",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000002",
|
||||
"quantity": 38.0,
|
||||
"location": "Valencia Ruzafa - Cold Storage",
|
||||
"production_stage": "RAW_MATERIAL",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-01-23T00:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000002",
|
||||
"batch_number": "VLC-MAN-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Warehouse - Valencia"
|
||||
},
|
||||
{
|
||||
"id": "10000000-0000-0000-0000-000000003003",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000004",
|
||||
"quantity": 12.0,
|
||||
"location": "Valencia Ruzafa - Dry Storage",
|
||||
"production_stage": "RAW_MATERIAL",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2026-01-15T00:00:00Z",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000003",
|
||||
"batch_number": "VLC-SAL-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Warehouse - Valencia"
|
||||
},
|
||||
{
|
||||
"id": "20000000-0000-0000-0000-000000003001",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 58.0,
|
||||
"location": "Valencia Ruzafa - Display",
|
||||
"production_stage": "FINISHED_PRODUCT",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-01-16T06:00:00Z",
|
||||
"supplier_id": null,
|
||||
"batch_number": "VLC-BAG-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Production Facility - Valencia"
|
||||
},
|
||||
{
|
||||
"id": "20000000-0000-0000-0000-000000003002",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"ingredient_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 22.0,
|
||||
"location": "Valencia Ruzafa - Display",
|
||||
"production_stage": "FINISHED_PRODUCT",
|
||||
"quality_status": "APPROVED",
|
||||
"expiration_date": "2025-01-17T06:00:00Z",
|
||||
"supplier_id": null,
|
||||
"batch_number": "VLC-PAN-20250115-001",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_shared": true,
|
||||
"source_location": "Central Production Facility - Valencia"
|
||||
}
|
||||
],
|
||||
"local_sales": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000005001",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-15T08:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity_sold": 32.0,
|
||||
"unit_price": 2.70,
|
||||
"total_revenue": 86.40,
|
||||
"sales_channel": "RETAIL",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venta local en Valencia Ruzafa - mañana",
|
||||
"enterprise_location_sale": true,
|
||||
"parent_order_id": "60000000-0000-0000-0000-000000004001"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000005002",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-15T10:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity_sold": 15.0,
|
||||
"unit_price": 2.40,
|
||||
"total_revenue": 36.00,
|
||||
"sales_channel": "RETAIL",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venta de pan de campo en Valencia",
|
||||
"enterprise_location_sale": true,
|
||||
"parent_order_id": "60000000-0000-0000-0000-000000004002"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000005003",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-14T18:30:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity_sold": 24.0,
|
||||
"unit_price": 2.70,
|
||||
"total_revenue": 64.80,
|
||||
"sales_channel": "RETAIL",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venta de tarde en Valencia Ruzafa",
|
||||
"enterprise_location_sale": true,
|
||||
"parent_order_id": "60000000-0000-0000-0000-000000004003"
|
||||
}
|
||||
],
|
||||
"local_orders": [
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000004001",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"order_number": "ORD-VLC-RUZ-20250115-001",
|
||||
"customer_name": "Mercado de Ruzafa - Puesto 12",
|
||||
"customer_email": "puesto12@mercadoruzafa.es",
|
||||
"order_date": "2025-01-15T06:30:00Z",
|
||||
"delivery_date": "2025-01-15T08:00:00Z",
|
||||
"status": "DELIVERED",
|
||||
"total_amount": 86.40,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Pedido matinal para puesto de mercado",
|
||||
"enterprise_location_order": true
|
||||
},
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000004002",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"order_number": "ORD-VLC-RUZ-20250115-002",
|
||||
"customer_name": "Bar La Pilareta",
|
||||
"customer_email": "pedidos@lapilareta.es",
|
||||
"order_date": "2025-01-15T07:00:00Z",
|
||||
"delivery_date": "2025-01-15T10:00:00Z",
|
||||
"status": "DELIVERED",
|
||||
"total_amount": 36.00,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Pan de campo para bar tradicional",
|
||||
"enterprise_location_order": true
|
||||
},
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000004003",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"order_number": "ORD-VLC-RUZ-20250114-003",
|
||||
"customer_name": "Restaurante La Riuà",
|
||||
"customer_email": "compras@lariua.com",
|
||||
"order_date": "2025-01-14T16:00:00Z",
|
||||
"delivery_date": "2025-01-14T18:30:00Z",
|
||||
"status": "DELIVERED",
|
||||
"total_amount": 64.80,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Pedido de tarde para restaurante",
|
||||
"enterprise_location_order": true
|
||||
},
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000004004",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"order_number": "ORD-VLC-RUZ-20250116-004",
|
||||
"customer_name": "Hotel Sorolla Palace",
|
||||
"customer_email": "aprovisionamiento@sorollapalace.com",
|
||||
"order_date": "2025-01-15T11:00:00Z",
|
||||
"delivery_date": "2025-01-16T07:00:00Z",
|
||||
"status": "CONFIRMED",
|
||||
"total_amount": 125.50,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Pedido para desayuno buffet del hotel - entrega mañana",
|
||||
"enterprise_location_order": true
|
||||
}
|
||||
],
|
||||
"local_production_batches": [
|
||||
{
|
||||
"id": "40000000-0000-0000-0000-000000003001",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"batch_number": "VLC-BATCH-20250115-001",
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"planned_quantity": 90.0,
|
||||
"actual_quantity": 88.0,
|
||||
"status": "COMPLETED",
|
||||
"planned_start_time": "2025-01-15T03:30:00Z",
|
||||
"actual_start_time": "2025-01-15T03:35:00Z",
|
||||
"planned_end_time": "2025-01-15T05:30:00Z",
|
||||
"actual_end_time": "2025-01-15T05:40:00Z",
|
||||
"equipment_id": "30000000-0000-0000-0000-000000000003",
|
||||
"operator_id": "50000000-0000-0000-0000-000000000013",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Producción matinal de baguettes en Valencia",
|
||||
"enterprise_location_production": true
|
||||
},
|
||||
{
|
||||
"id": "40000000-0000-0000-0000-000000003002",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"batch_number": "VLC-BATCH-20250115-002",
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000003",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"planned_quantity": 40.0,
|
||||
"actual_quantity": 40.0,
|
||||
"status": "COMPLETED",
|
||||
"planned_start_time": "2025-01-15T04:00:00Z",
|
||||
"actual_start_time": "2025-01-15T04:00:00Z",
|
||||
"planned_end_time": "2025-01-15T06:30:00Z",
|
||||
"actual_end_time": "2025-01-15T06:25:00Z",
|
||||
"equipment_id": "30000000-0000-0000-0000-000000000003",
|
||||
"operator_id": "50000000-0000-0000-0000-000000000014",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Producción de pan de campo completada",
|
||||
"enterprise_location_production": true
|
||||
},
|
||||
{
|
||||
"id": "40000000-0000-0000-0000-000000003003",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"batch_number": "VLC-BATCH-20250116-003",
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"planned_quantity": 120.0,
|
||||
"actual_quantity": null,
|
||||
"status": "SCHEDULED",
|
||||
"planned_start_time": "2025-01-16T03:30:00Z",
|
||||
"actual_start_time": null,
|
||||
"planned_end_time": "2025-01-16T05:30:00Z",
|
||||
"actual_end_time": null,
|
||||
"equipment_id": "30000000-0000-0000-0000-000000000003",
|
||||
"operator_id": "50000000-0000-0000-0000-000000000013",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Lote programado para mañana - pedido de hotel",
|
||||
"enterprise_location_production": true
|
||||
}
|
||||
],
|
||||
"local_forecasts": [
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000003001",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "2025-01-16T00:00:00Z",
|
||||
"predicted_quantity": 78.0,
|
||||
"confidence_score": 0.90,
|
||||
"forecast_horizon_days": 1,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Previsión de demanda diaria para Valencia Ruzafa",
|
||||
"enterprise_location_forecast": true
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000003002",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"forecast_date": "2025-01-16T00:00:00Z",
|
||||
"predicted_quantity": 35.0,
|
||||
"confidence_score": 0.87,
|
||||
"forecast_horizon_days": 1,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Previsión de pan de campo para mañana",
|
||||
"enterprise_location_forecast": true
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000003003",
|
||||
"tenant_id": "V0000000-0000-4000-a000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "2025-01-17T00:00:00Z",
|
||||
"predicted_quantity": 95.0,
|
||||
"confidence_score": 0.93,
|
||||
"forecast_horizon_days": 2,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Previsión fin de semana - aumento de demanda esperado",
|
||||
"enterprise_location_forecast": true
|
||||
}
|
||||
]
|
||||
}
|
||||
55
shared/demo/fixtures/enterprise/parent/01-tenant.json
Normal file
55
shared/demo/fixtures/enterprise/parent/01-tenant.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"tenant": {
|
||||
"id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Panadería Central - Demo Enterprise",
|
||||
"subscription_tier": "enterprise",
|
||||
"tenant_type": "parent",
|
||||
"email": "demo.enterprise@panaderiacentral.com",
|
||||
"subdomain": "demo-central",
|
||||
"description": "Enterprise tier demo tenant with multiple locations",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_features": [
|
||||
"multi_location_management",
|
||||
"centralized_inventory",
|
||||
"advanced_analytics",
|
||||
"custom_reporting",
|
||||
"api_access",
|
||||
"priority_support"
|
||||
]
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "A0000000-0000-4000-a000-000000000001",
|
||||
"name": "Madrid Centro",
|
||||
"location": {
|
||||
"city": "Madrid",
|
||||
"zone": "Centro",
|
||||
"latitude": 40.4168,
|
||||
"longitude": -3.7038
|
||||
},
|
||||
"description": "Central Madrid location"
|
||||
},
|
||||
{
|
||||
"id": "B0000000-0000-4000-a000-000000000001",
|
||||
"name": "Barcelona Gràcia",
|
||||
"location": {
|
||||
"city": "Barcelona",
|
||||
"zone": "Gràcia",
|
||||
"latitude": 41.4036,
|
||||
"longitude": 2.1561
|
||||
},
|
||||
"description": "Barcelona Gràcia district location"
|
||||
},
|
||||
{
|
||||
"id": "C0000000-0000-4000-a000-000000000001",
|
||||
"name": "Valencia Ruzafa",
|
||||
"location": {
|
||||
"city": "Valencia",
|
||||
"zone": "Ruzafa",
|
||||
"latitude": 39.4623,
|
||||
"longitude": -0.3645
|
||||
},
|
||||
"description": "Valencia Ruzafa neighborhood location"
|
||||
}
|
||||
]
|
||||
}
|
||||
132
shared/demo/fixtures/enterprise/parent/02-auth.json
Normal file
132
shared/demo/fixtures/enterprise/parent/02-auth.json
Normal file
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"users": [
|
||||
{
|
||||
"id": "d2e3f4a5-b6c7-48d9-e0f1-a2b3c4d5e6f7",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Carlos Martínez Ruiz",
|
||||
"email": "carlos.martinez@panaderiacentral.com",
|
||||
"role": "owner",
|
||||
"position": "CEO",
|
||||
"phone": "+34 912 345 678",
|
||||
"status": "ACTIVE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"last_login": "2025-01-15T06:00:00Z",
|
||||
"permissions": [
|
||||
"all_access",
|
||||
"enterprise_admin",
|
||||
"financial_reports",
|
||||
"multi_location_management"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000000011",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Roberto Producción",
|
||||
"email": "roberto.produccion@panaderiacentral.com",
|
||||
"role": "production_manager",
|
||||
"position": "Head of Production",
|
||||
"phone": "+34 913 456 789",
|
||||
"status": "ACTIVE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"last_login": "2025-01-15T06:00:00Z",
|
||||
"permissions": [
|
||||
"production_management",
|
||||
"inventory_management",
|
||||
"quality_control",
|
||||
"multi_location_view"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000000012",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Marta Calidad",
|
||||
"email": "marta.calidad@panaderiacentral.com",
|
||||
"role": "quality_control",
|
||||
"position": "Quality Assurance Manager",
|
||||
"phone": "+34 914 567 890",
|
||||
"status": "ACTIVE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"last_login": "2025-01-15T06:00:00Z",
|
||||
"permissions": [
|
||||
"quality_control",
|
||||
"compliance_management",
|
||||
"audit_access",
|
||||
"multi_location_view"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000000013",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Javier Logística",
|
||||
"email": "javier.logistica@panaderiacentral.com",
|
||||
"role": "logistics",
|
||||
"position": "Logistics Coordinator",
|
||||
"phone": "+34 915 678 901",
|
||||
"status": "ACTIVE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"last_login": "2025-01-15T06:00:00Z",
|
||||
"permissions": [
|
||||
"logistics_management",
|
||||
"delivery_scheduling",
|
||||
"fleet_management",
|
||||
"multi_location_view"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000000014",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Carmen Ventas",
|
||||
"email": "carmen.ventas@panaderiacentral.com",
|
||||
"role": "sales",
|
||||
"position": "Sales Director",
|
||||
"phone": "+34 916 789 012",
|
||||
"status": "ACTIVE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"last_login": "2025-01-15T06:00:00Z",
|
||||
"permissions": [
|
||||
"sales_management",
|
||||
"customer_relations",
|
||||
"contract_management",
|
||||
"multi_location_view",
|
||||
"enterprise_reports"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000000015",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Luis Compras",
|
||||
"email": "luis.compras@panaderiacentral.com",
|
||||
"role": "procurement",
|
||||
"position": "Procurement Manager",
|
||||
"phone": "+34 917 890 123",
|
||||
"status": "ACTIVE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"last_login": "2025-01-15T06:00:00Z",
|
||||
"permissions": [
|
||||
"procurement_management",
|
||||
"supplier_relations",
|
||||
"inventory_planning",
|
||||
"multi_location_view",
|
||||
"enterprise_reports"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000000016",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Miguel Mantenimiento",
|
||||
"email": "miguel.mantenimiento@panaderiacentral.com",
|
||||
"role": "maintenance",
|
||||
"position": "Maintenance Supervisor",
|
||||
"phone": "+34 918 901 234",
|
||||
"status": "ACTIVE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"last_login": "2025-01-15T06:00:00Z",
|
||||
"permissions": [
|
||||
"equipment_maintenance",
|
||||
"facility_management",
|
||||
"iot_monitoring",
|
||||
"multi_location_view"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
114
shared/demo/fixtures/enterprise/parent/04-recipes.json
Normal file
114
shared/demo/fixtures/enterprise/parent/04-recipes.json
Normal file
@@ -0,0 +1,114 @@
|
||||
{
|
||||
"recipes": [
|
||||
{
|
||||
"id": "30000000-0000-0000-0000-000000000001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Baguette Premium - Enterprise Standard",
|
||||
"recipe_code": "ENT-BAG-STD-001",
|
||||
"version": "2.0",
|
||||
"finished_product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"description": "Receta estándar de baguette premium para todas las ubicaciones enterprise. Optimizada para producción masiva con calidad consistente.",
|
||||
"category": "Panes",
|
||||
"cuisine_type": "Francesa",
|
||||
"difficulty_level": 2,
|
||||
"yield_quantity": 50.0,
|
||||
"yield_unit": "units",
|
||||
"prep_time_minutes": 30,
|
||||
"cook_time_minutes": 25,
|
||||
"total_time_minutes": 180,
|
||||
"rest_time_minutes": 120,
|
||||
"estimated_cost_per_unit": 1.80,
|
||||
"last_calculated_cost": 1.75,
|
||||
"cost_calculation_date": "2025-01-14T00:00:00Z",
|
||||
"target_margin_percentage": 65.0,
|
||||
"suggested_selling_price": 2.95,
|
||||
"status": "APPROVED",
|
||||
"is_active": true,
|
||||
"is_standardized": true,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"updated_at": "2025-01-15T06:00:00Z",
|
||||
"created_by": "50000000-0000-0000-0000-000000000011",
|
||||
"enterprise_standard": true,
|
||||
"applicable_locations": ["Madrid Centro", "Barcelona Gràcia", "Valencia Ruzafa"],
|
||||
"instructions": {
|
||||
"steps": [
|
||||
{
|
||||
"step": 1,
|
||||
"title": "Amasado Estándar",
|
||||
"description": "Mezclar harina, agua, sal y levadura en amasadora espiral durante 20 minutos. Temperatura de masa objetivo: 24°C.",
|
||||
"duration_minutes": 20
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"title": "Fermentación Controlada",
|
||||
"description": "Fermentar en cámara a 26°C con 75% humedad durante 90 minutos.",
|
||||
"duration_minutes": 90
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"title": "División y Formado",
|
||||
"description": "Dividir en piezas de 280g y formar baguettes con equipo automático.",
|
||||
"duration_minutes": 25
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"title": "Fermentación Final",
|
||||
"description": "Fermentación final en cámara a 28°C con 80% humedad durante 60 minutos.",
|
||||
"duration_minutes": 60
|
||||
},
|
||||
{
|
||||
"step": 5,
|
||||
"title": "Cocción",
|
||||
"description": "Hornear a 240°C con vapor durante 25 minutos en horno rotativo.",
|
||||
"duration_minutes": 25
|
||||
}
|
||||
],
|
||||
"quality_checks": [
|
||||
{
|
||||
"check": "Temperatura de masa",
|
||||
"target": "24°C",
|
||||
"tolerance": "±1°C"
|
||||
},
|
||||
{
|
||||
"check": "Peso final",
|
||||
"target": "280g",
|
||||
"tolerance": "±5g"
|
||||
},
|
||||
{
|
||||
"check": "Color de corteza",
|
||||
"target": "Dorado intenso"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"recipe_ingredients": [
|
||||
{
|
||||
"id": "30000000-0000-0000-0000-000000001001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
||||
"quantity": 14.0,
|
||||
"unit": "kilograms",
|
||||
"substitution_options": [
|
||||
"10000000-0000-0000-0000-000000000002"
|
||||
],
|
||||
"is_essential": true,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_standard": true
|
||||
},
|
||||
{
|
||||
"id": "30000000-0000-0000-0000-000000001002",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000002",
|
||||
"quantity": 0.5,
|
||||
"unit": "kilograms",
|
||||
"substitution_options": [],
|
||||
"is_essential": false,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_standard": true,
|
||||
"notes": "Solo para versión premium"
|
||||
}
|
||||
]
|
||||
}
|
||||
63
shared/demo/fixtures/enterprise/parent/05-suppliers.json
Normal file
63
shared/demo/fixtures/enterprise/parent/05-suppliers.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"suppliers": [
|
||||
{
|
||||
"id": "40000000-0000-0000-0000-000000000001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Molinos San José - Enterprise Division",
|
||||
"supplier_code": "SUP-HARINA-ENT-001",
|
||||
"business_name": "Molinos San José S.A. - Enterprise Division",
|
||||
"tax_id": "A12345678",
|
||||
"contact_person": "José Martínez",
|
||||
"email": "enterprise@molinossanjose.es",
|
||||
"phone": "+34 945 123 456",
|
||||
"address": "Pol. Industrial Norte, Calle 5",
|
||||
"city": "Vitoria-Gasteiz",
|
||||
"postal_code": "01000",
|
||||
"country": "España",
|
||||
"status": "ACTIVE",
|
||||
"rating": 4.8,
|
||||
"payment_terms": "60_DAYS",
|
||||
"minimum_order_amount": 1000.0,
|
||||
"lead_time_days": 2,
|
||||
"contract_start_date": "2024-01-01T00:00:00Z",
|
||||
"contract_end_date": "2025-12-31T23:59:59Z",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"specialties": ["flour", "bread_improvers", "enterprise_supply"],
|
||||
"delivery_areas": ["Madrid", "Barcelona", "Valencia", "Basque Country"],
|
||||
"enterprise_contract": true,
|
||||
"contract_type": "national_supply_agreement",
|
||||
"annual_volume_commitment": 50000.0,
|
||||
"preferred_supplier": true
|
||||
},
|
||||
{
|
||||
"id": "40000000-0000-0000-0000-000000000002",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Lescure - Enterprise Division",
|
||||
"supplier_code": "SUP-LACTEO-ENT-001",
|
||||
"business_name": "Lescure S.A. - Enterprise Division",
|
||||
"tax_id": "B87654321",
|
||||
"contact_person": "María López",
|
||||
"email": "enterprise@lescure.com",
|
||||
"phone": "+34 943 234 567",
|
||||
"address": "Calle Urola, 12",
|
||||
"city": "Donostia-San Sebastián",
|
||||
"postal_code": "20001",
|
||||
"country": "España",
|
||||
"status": "ACTIVE",
|
||||
"rating": 4.9,
|
||||
"payment_terms": "30_DAYS",
|
||||
"minimum_order_amount": 500.0,
|
||||
"lead_time_days": 1,
|
||||
"contract_start_date": "2024-03-15T00:00:00Z",
|
||||
"contract_end_date": "2025-12-31T23:59:59Z",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"specialties": ["butter", "cream", "enterprise_dairy"],
|
||||
"delivery_areas": ["Madrid", "Barcelona", "Valencia", "Basque Country"],
|
||||
"enterprise_contract": true,
|
||||
"contract_type": "premium_dairy_supply",
|
||||
"annual_volume_commitment": 12000.0,
|
||||
"preferred_supplier": true,
|
||||
"organic_certified": true
|
||||
}
|
||||
]
|
||||
}
|
||||
87
shared/demo/fixtures/enterprise/parent/06-production.json
Normal file
87
shared/demo/fixtures/enterprise/parent/06-production.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"equipment": [
|
||||
{
|
||||
"id": "30000000-0000-0000-0000-000000000001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"name": "Horno Rotativo Enterprise - Línea 1",
|
||||
"type": "oven",
|
||||
"model": "Sveba Dahlen DC-32 Enterprise",
|
||||
"serial_number": "SD-ENT-2023-001",
|
||||
"location": "Central Production Facility - Madrid",
|
||||
"manufacturer": "Sveba Dahlen",
|
||||
"firmware_version": "4.2.1",
|
||||
"status": "OPERATIONAL",
|
||||
"install_date": "2024-06-15T00:00:00Z",
|
||||
"last_maintenance_date": "2025-01-10T00:00:00Z",
|
||||
"next_maintenance_date": "2025-04-10T00:00:00Z",
|
||||
"maintenance_interval_days": 90,
|
||||
"efficiency_percentage": 95.0,
|
||||
"uptime_percentage": 97.0,
|
||||
"energy_usage_kwh": 85.0,
|
||||
"power_kw": 90.0,
|
||||
"capacity": 32.0,
|
||||
"weight_kg": 2500.0,
|
||||
"current_temperature": 230.0,
|
||||
"target_temperature": 230.0,
|
||||
"iot_enabled": true,
|
||||
"iot_protocol": "MQTT",
|
||||
"iot_endpoint": "iot.panaderiacentral.com",
|
||||
"iot_port": 1883,
|
||||
"iot_connection_status": "CONNECTED",
|
||||
"iot_last_connected": "2025-01-15T05:45:00Z",
|
||||
"supports_realtime": true,
|
||||
"poll_interval_seconds": 10,
|
||||
"temperature_zones": 4,
|
||||
"supports_humidity": true,
|
||||
"supports_energy_monitoring": true,
|
||||
"supports_remote_control": true,
|
||||
"is_active": true,
|
||||
"notes": "Equipo principal para producción masiva",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"updated_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_asset": true,
|
||||
"shared_locations": ["Madrid Centro", "Barcelona Gràcia", "Valencia Ruzafa"]
|
||||
}
|
||||
],
|
||||
"production_batches": [
|
||||
{
|
||||
"id": "30000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"batch_number": "ENT-BAG-20250115-001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"recipe_id": "30000000-0000-0000-0000-000000000001",
|
||||
"equipment_id": "30000000-0000-0000-0000-000000000001",
|
||||
"status": "IN_PROGRESS",
|
||||
"start_time": "2025-01-15T06:30:00Z",
|
||||
"end_time": "2025-01-15T10:30:00Z",
|
||||
"planned_quantity": 250.0,
|
||||
"actual_quantity": 200.0,
|
||||
"waste_quantity": 5.0,
|
||||
"quality_status": "PENDING",
|
||||
"production_line": "Linea 1 - Baguettes",
|
||||
"shift": "Morning",
|
||||
"supervisor_id": "50000000-0000-0000-0000-000000000011",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"updated_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_batch": true,
|
||||
"production_facility": "Central Production Facility - Madrid",
|
||||
"distribution_plan": [
|
||||
{
|
||||
"location": "Madrid Centro",
|
||||
"quantity": 100.0,
|
||||
"delivery_time": "2025-01-15T12:00:00Z"
|
||||
},
|
||||
{
|
||||
"location": "Barcelona Gràcia",
|
||||
"quantity": 60.0,
|
||||
"delivery_time": "2025-01-15T14:00:00Z"
|
||||
},
|
||||
{
|
||||
"location": "Valencia Ruzafa",
|
||||
"quantity": 40.0,
|
||||
"delivery_time": "2025-01-15T16:00:00Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
62
shared/demo/fixtures/enterprise/parent/07-procurement.json
Normal file
62
shared/demo/fixtures/enterprise/parent/07-procurement.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"procurement_plans": [],
|
||||
"procurement_requirements": [],
|
||||
"purchase_orders": [
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"po_number": "ENT-PO-20250115-001",
|
||||
"supplier_id": "40000000-0000-0000-0000-000000000001",
|
||||
"order_date": "2025-01-14T10:00:00Z",
|
||||
"expected_delivery_date": "2025-01-16T10:00:00Z",
|
||||
"status": "pending_approval",
|
||||
"total_amount": 650.00,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Pedido semanal de harina para producción central",
|
||||
"enterprise_order": true,
|
||||
"contract_reference": "ENT-HARINA-2024-001",
|
||||
"payment_terms": "60_DAYS",
|
||||
"delivery_location": "Central Warehouse - Madrid",
|
||||
"incoterms": "DAP"
|
||||
}
|
||||
],
|
||||
"purchase_order_items": [
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000002101",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"po_id": "50000000-0000-0000-0000-000000002001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000001",
|
||||
"quantity": 800.0,
|
||||
"unit_price": 0.80,
|
||||
"total_price": 640.00,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_item": true,
|
||||
"delivery_schedule": [
|
||||
{
|
||||
"delivery_date": "2025-01-16T10:00:00Z",
|
||||
"quantity": 800.0,
|
||||
"location": "Central Warehouse - Madrid"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "50000000-0000-0000-0000-000000002102",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"po_id": "50000000-0000-0000-0000-000000002001",
|
||||
"ingredient_id": "10000000-0000-0000-0000-000000000002",
|
||||
"quantity": 12.5,
|
||||
"unit_price": 4.00,
|
||||
"total_price": 50.00,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_item": true,
|
||||
"delivery_schedule": [
|
||||
{
|
||||
"delivery_date": "2025-01-16T10:00:00Z",
|
||||
"quantity": 12.5,
|
||||
"location": "Central Warehouse - Madrid"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"deliveries": []
|
||||
}
|
||||
112
shared/demo/fixtures/enterprise/parent/08-orders.json
Normal file
112
shared/demo/fixtures/enterprise/parent/08-orders.json
Normal file
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"customers": [
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"customer_code": "ENT-CUST-001",
|
||||
"name": "Grupo Hotelero Mediterráneo",
|
||||
"customer_type": "ENTERPRISE",
|
||||
"contact_person": "Luis Gómez",
|
||||
"email": "compras@grupohotelmed.com",
|
||||
"phone": "+34 912 345 678",
|
||||
"address": "Calle Gran Vía, 45",
|
||||
"city": "Madrid",
|
||||
"postal_code": "28013",
|
||||
"country": "España",
|
||||
"status": "ACTIVE",
|
||||
"total_orders": 125,
|
||||
"total_spent": 18500.75,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Cadena hotelera con 15 ubicaciones en España",
|
||||
"contract_type": "national_supply_agreement",
|
||||
"annual_volume_commitment": 25000.0,
|
||||
"enterprise_customer": true,
|
||||
"delivery_locations": [
|
||||
"Madrid Centro",
|
||||
"Barcelona Gràcia",
|
||||
"Valencia Ruzafa",
|
||||
"Sevilla Santa Cruz",
|
||||
"Málaga Centro"
|
||||
]
|
||||
}
|
||||
],
|
||||
"customer_orders": [
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"customer_id": "60000000-0000-0000-0000-000000002001",
|
||||
"order_number": "ENT-ORD-20250115-001",
|
||||
"order_date": "2025-01-14T11:00:00Z",
|
||||
"delivery_date": "2025-01-15T09:00:00Z",
|
||||
"status": "DELIVERED",
|
||||
"total_amount": 650.50,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Pedido semanal para 5 hoteles",
|
||||
"enterprise_order": true,
|
||||
"contract_reference": "ENT-HOTEL-2024-001",
|
||||
"delivery_locations": [
|
||||
{
|
||||
"location": "Hotel Mediterráneo Madrid",
|
||||
"quantity": 50.0,
|
||||
"delivery_time": "2025-01-15T09:00:00Z"
|
||||
},
|
||||
{
|
||||
"location": "Hotel Mediterráneo Barcelona",
|
||||
"quantity": 30.0,
|
||||
"delivery_time": "2025-01-15T10:00:00Z"
|
||||
},
|
||||
{
|
||||
"location": "Hotel Mediterráneo Valencia",
|
||||
"quantity": 20.0,
|
||||
"delivery_time": "2025-01-15T11:00:00Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"order_items": [
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000002101",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"order_id": "60000000-0000-0000-0000-000000002001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity": 100.0,
|
||||
"unit_price": 2.50,
|
||||
"total_price": 250.00,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_item": true
|
||||
},
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000002102",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"order_id": "60000000-0000-0000-0000-000000002001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity": 25.0,
|
||||
"unit_price": 3.75,
|
||||
"total_price": 93.75,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_item": true
|
||||
},
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000002103",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"order_id": "60000000-0000-0000-0000-000000002001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity": 20.0,
|
||||
"unit_price": 2.25,
|
||||
"total_price": 45.00,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_item": true
|
||||
},
|
||||
{
|
||||
"id": "60000000-0000-0000-0000-000000002104",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"order_id": "60000000-0000-0000-0000-000000002001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"quantity": 15.0,
|
||||
"unit_price": 1.75,
|
||||
"total_price": 26.25,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"enterprise_item": true
|
||||
}
|
||||
]
|
||||
}
|
||||
69
shared/demo/fixtures/enterprise/parent/09-sales.json
Normal file
69
shared/demo/fixtures/enterprise/parent/09-sales.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"sales_data": [
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-14T10:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"quantity_sold": 250.0,
|
||||
"unit_price": 2.50,
|
||||
"total_revenue": 625.00,
|
||||
"sales_channel": "ENTERPRISE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venta a Grupo Hotelero Mediterráneo",
|
||||
"enterprise_sale": true,
|
||||
"customer_id": "60000000-0000-0000-0000-000000002001",
|
||||
"contract_reference": "ENT-HOTEL-2024-001",
|
||||
"delivery_locations": [
|
||||
"Madrid Centro",
|
||||
"Barcelona Gràcia",
|
||||
"Valencia Ruzafa"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000002002",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-14T11:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"quantity_sold": 50.0,
|
||||
"unit_price": 3.75,
|
||||
"total_revenue": 187.50,
|
||||
"sales_channel": "ENTERPRISE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venta a Grupo Hotelero Mediterráneo",
|
||||
"enterprise_sale": true,
|
||||
"customer_id": "60000000-0000-0000-0000-000000002001",
|
||||
"contract_reference": "ENT-HOTEL-2024-001"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000002003",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-14T12:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000003",
|
||||
"quantity_sold": 40.0,
|
||||
"unit_price": 2.25,
|
||||
"total_revenue": 90.00,
|
||||
"sales_channel": "ENTERPRISE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venta a Grupo Hotelero Mediterráneo",
|
||||
"enterprise_sale": true,
|
||||
"customer_id": "60000000-0000-0000-0000-000000002001",
|
||||
"contract_reference": "ENT-HOTEL-2024-001"
|
||||
},
|
||||
{
|
||||
"id": "70000000-0000-0000-0000-000000002004",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"sale_date": "2025-01-14T15:00:00Z",
|
||||
"product_id": "20000000-0000-0000-0000-000000000004",
|
||||
"quantity_sold": 30.0,
|
||||
"unit_price": 1.75,
|
||||
"total_revenue": 52.50,
|
||||
"sales_channel": "ENTERPRISE",
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Venta a Grupo Hotelero Mediterráneo",
|
||||
"enterprise_sale": true,
|
||||
"customer_id": "60000000-0000-0000-0000-000000002001",
|
||||
"contract_reference": "ENT-HOTEL-2024-001"
|
||||
}
|
||||
]
|
||||
}
|
||||
80
shared/demo/fixtures/enterprise/parent/10-forecasting.json
Normal file
80
shared/demo/fixtures/enterprise/parent/10-forecasting.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"forecasts": [
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000002001",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "2025-01-16T00:00:00Z",
|
||||
"predicted_quantity": 300.0,
|
||||
"confidence_score": 0.95,
|
||||
"forecast_horizon_days": 1,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Demanda diaria enterprise para 15 hoteles",
|
||||
"enterprise_forecast": true,
|
||||
"forecast_type": "contractual_commitment",
|
||||
"contract_reference": "ENT-HOTEL-2024-001",
|
||||
"customer_id": "60000000-0000-0000-0000-000000002001",
|
||||
"delivery_locations": [
|
||||
"Madrid Centro",
|
||||
"Barcelona Gràcia",
|
||||
"Valencia Ruzafa",
|
||||
"Sevilla Santa Cruz",
|
||||
"Málaga Centro"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000002002",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000002",
|
||||
"forecast_date": "2025-01-16T00:00:00Z",
|
||||
"predicted_quantity": 60.0,
|
||||
"confidence_score": 0.92,
|
||||
"forecast_horizon_days": 1,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Demanda diaria enterprise para desayunos",
|
||||
"enterprise_forecast": true,
|
||||
"forecast_type": "contractual_commitment",
|
||||
"contract_reference": "ENT-HOTEL-2024-001",
|
||||
"customer_id": "60000000-0000-0000-0000-000000002001"
|
||||
},
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000002099",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"product_id": "20000000-0000-0000-0000-000000000001",
|
||||
"forecast_date": "2025-01-17T00:00:00Z",
|
||||
"predicted_quantity": 450.0,
|
||||
"confidence_score": 0.98,
|
||||
"forecast_horizon_days": 2,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Demanda de fin de semana - evento especial",
|
||||
"enterprise_forecast": true,
|
||||
"forecast_type": "special_event",
|
||||
"contract_reference": "ENT-HOTEL-2024-001",
|
||||
"customer_id": "60000000-0000-0000-0000-000000002001",
|
||||
"reasoning_data": {
|
||||
"type": "special_event",
|
||||
"parameters": {
|
||||
"event_type": "conference",
|
||||
"event_name": "Mediterranean Business Conference 2025",
|
||||
"attendees": 500,
|
||||
"demand_increase_factor": 1.8
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"prediction_batches": [
|
||||
{
|
||||
"id": "80000000-0000-0000-0000-000000002101",
|
||||
"tenant_id": "80000000-0000-4000-a000-000000000001",
|
||||
"batch_id": "ENT-FCST-20250116-001",
|
||||
"prediction_date": "2025-01-15T06:00:00Z",
|
||||
"status": "COMPLETED",
|
||||
"total_forecasts": 3,
|
||||
"created_at": "2025-01-15T06:00:00Z",
|
||||
"notes": "Predicción diaria para contratos enterprise",
|
||||
"enterprise_batch": true,
|
||||
"forecast_horizon": "48_hours",
|
||||
"model_used": "enterprise_demand_v2"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user