Fix Demo enterprise

This commit is contained in:
Urtzi Alfaro
2025-12-17 13:03:52 +01:00
parent 0bbfa010bf
commit 8bfe4f2dd7
111 changed files with 26200 additions and 2245 deletions

171
scripts/README.md Normal file
View File

@@ -0,0 +1,171 @@
# Enterprise Demo Fixtures Validation Scripts
This directory contains scripts for validating and managing enterprise demo fixtures for the Bakery AI platform.
## Scripts Overview
### 1. `validate_enterprise_demo_fixtures.py`
**Main Validation Script**
Validates all cross-references between JSON fixtures for enterprise demo sessions. Checks that all referenced IDs exist and are consistent across files.
**Features:**
- Validates user-tenant relationships
- Validates parent-child tenant relationships
- Validates product-tenant and product-user relationships
- Validates ingredient-tenant and ingredient-user relationships
- Validates recipe-tenant and recipe-product relationships
- Validates supplier-tenant relationships
- Checks UUID format validity
- Detects duplicate IDs
**Usage:**
```bash
python scripts/validate_enterprise_demo_fixtures.py
```
### 2. `fix_inventory_user_references.py`
**Fix Script for Missing User References**
Replaces missing user ID `c1a2b3c4-d5e6-47a8-b9c0-d1e2f3a4b5c6` with the production director user ID `ae38accc-1ad4-410d-adbc-a55630908924` in all inventory.json files.
**Usage:**
```bash
python scripts/fix_inventory_user_references.py
```
### 3. `generate_child_auth_files.py`
**Child Auth Files Generator**
Creates auth.json files for each child tenant with appropriate users (manager and staff).
**Usage:**
```bash
python scripts/generate_child_auth_files.py
```
### 4. `demo_fixtures_summary.py`
**Summary Report Generator**
Provides a comprehensive summary of the enterprise demo fixtures status including file sizes, entity counts, and totals.
**Usage:**
```bash
python scripts/demo_fixtures_summary.py
```
### 5. `comprehensive_demo_validation.py`
**Comprehensive Validation Runner**
Runs all validation checks and provides a complete report. This is the recommended script to run for full validation.
**Usage:**
```bash
python scripts/comprehensive_demo_validation.py
```
## Validation Process
### Step 1: Run Comprehensive Validation
```bash
python scripts/comprehensive_demo_validation.py
```
This script will:
1. Run the main validation to check all cross-references
2. Generate a summary report
3. Provide a final status report
### Step 2: Review Results
The validation will output:
-**Success**: All cross-references are valid
-**Failure**: Lists specific issues that need to be fixed
### Step 3: Fix Issues (if any)
If validation fails, you may need to run specific fix scripts:
```bash
# Fix missing user references in inventory
python scripts/fix_inventory_user_references.py
# Generate missing auth files for children
python scripts/generate_child_auth_files.py
```
### Step 4: Re-run Validation
After fixing issues, run the comprehensive validation again:
```bash
python scripts/comprehensive_demo_validation.py
```
## Current Status
**All validation checks are passing!**
The enterprise demo fixtures are ready for use with:
- **6 Tenants** (1 parent + 5 children)
- **25 Users** (15 parent + 10 children)
- **45 Ingredients** (25 parent + 20 children)
- **4 Recipes** (parent only)
- **6 Suppliers** (parent only)
All cross-references have been validated and no missing IDs or broken relationships were detected.
## Fixture Structure
```
shared/demo/fixtures/enterprise/
├── parent/
│ ├── 01-tenant.json # Parent tenant and children definitions
│ ├── 02-auth.json # Parent tenant users
│ ├── 03-inventory.json # Parent inventory (ingredients, products)
│ ├── 04-recipes.json # Parent recipes
│ ├── 05-suppliers.json # Parent suppliers
│ ├── 06-production.json # Parent production data
│ ├── 07-procurement.json # Parent procurement data
│ ├── 08-orders.json # Parent orders
│ ├── 09-sales.json # Parent sales data
│ ├── 10-forecasting.json # Parent forecasting data
│ └── 11-orchestrator.json # Parent orchestrator data
└── children/
├── A0000000-0000-4000-a000-000000000001/ # Madrid - Salamanca
├── B0000000-0000-4000-a000-000000000001/ # Barcelona - Eixample
├── C0000000-0000-4000-a000-000000000001/ # Valencia - Ruzafa
├── D0000000-0000-4000-a000-000000000001/ # Seville - Triana
└── E0000000-0000-4000-a000-000000000001/ # Bilbao - Casco Viejo
```
## Key Relationships Validated
1. **User-Tenant**: Users belong to specific tenants
2. **Parent-Child**: Parent tenant has 5 child locations
3. **Ingredient-Tenant**: Ingredients are associated with tenants
4. **Ingredient-User**: Ingredients are created by users
5. **Recipe-Tenant**: Recipes belong to tenants
6. **Recipe-Product**: Recipes produce specific products
7. **Supplier-Tenant**: Suppliers are associated with tenants
## Requirements
- Python 3.7+
- No additional dependencies required
## Maintenance
To add new validation checks:
1. Add new relationship processing in `validate_enterprise_demo_fixtures.py`
2. Add corresponding validation logic
3. Update the summary script if needed
## Troubleshooting
If validation fails:
1. Check the specific error messages
2. Verify the referenced IDs exist in the appropriate files
3. Run the specific fix scripts if available
4. Manually correct any remaining issues
5. Re-run validation