Refactor demo session architecture: consolidate metadata into fixture files
This commit refactors the demo session architecture to consolidate all demo configuration data into the fixture files, removing redundant metadata files. ## Changes Made: ### 1. Data Consolidation - **Removed**: `shared/demo/metadata/demo_users.json` - **Removed**: `shared/demo/metadata/tenant_configs.json` - **Updated**: Merged all user data into `02-auth.json` files - **Updated**: Merged all tenant config data into `01-tenant.json` files ### 2. Enterprise Parent Tenant Updates - Updated owner name to "Director" (matching auth fixtures) - Added description field matching tenant_configs.json - Added `base_tenant_id` to all child tenant entries - Now includes all 5 child locations (Madrid, Barcelona, Valencia, Seville, Bilbao) ### 3. Professional Tenant Updates - Added description field from tenant_configs.json - Ensured consistency with auth fixtures ### 4. Code Updates - **services/tenant/app/api/internal_demo.py**: - Fixed child tenant staff members to use enterprise parent users - Changed from professional staff IDs to enterprise staff IDs (Laura López, José Martínez, Francisco Moreno) - **services/demo_session/app/core/config.py**: - Updated DEMO_ACCOUNTS configuration with all 5 child outlets - Updated enterprise tenant name and email to match fixtures - Added descriptions for all child locations - **gateway/app/middleware/demo_middleware.py**: - Updated comments to reference fixture files as source of truth - Clarified that owner IDs come from 01-tenant.json files - **frontend/src/stores/useTenantInitializer.ts**: - Updated tenant names and descriptions to match fixture files - Added comments linking to source fixture files ## Benefits: 1. **Single Source of Truth**: All demo data now lives in fixture files 2. **Consistency**: No more sync issues between metadata and fixtures 3. **Maintainability**: Easier to update demo data (one place per tenant type) 4. **Clarity**: Clear separation between template data (fixtures) and runtime config ## Enterprise Demo Fix: The enterprise owner is now correctly added as a member of all child tenants, fixing the issue where the tenant switcher didn't show parent/child tenants and the establishments page didn't load tenants for the demo enterprise user. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -719,19 +719,20 @@ async def create_child_outlet(
|
||||
)
|
||||
db.add(child_owner_member)
|
||||
|
||||
# Create some staff members for the outlet (simplified)
|
||||
# Create staff members for the outlet from parent enterprise users
|
||||
# Use parent's enterprise staff (from enterprise/parent/02-auth.json)
|
||||
staff_users = [
|
||||
{
|
||||
"user_id": uuid.UUID("50000000-0000-0000-0000-000000000002"), # Sales user
|
||||
"role": "sales"
|
||||
"user_id": uuid.UUID("f6c54d0f-5899-4952-ad94-7a492c07167a"), # Laura López - Logistics
|
||||
"role": "logistics_coord"
|
||||
},
|
||||
{
|
||||
"user_id": uuid.UUID("50000000-0000-0000-0000-000000000003"), # Quality control user
|
||||
"user_id": uuid.UUID("80765906-0074-4206-8f58-5867df1975fd"), # José Martínez - Quality
|
||||
"role": "quality_control"
|
||||
},
|
||||
{
|
||||
"user_id": uuid.UUID("50000000-0000-0000-0000-000000000005"), # Warehouse user
|
||||
"role": "warehouse"
|
||||
"user_id": uuid.UUID("701cb9d2-6049-4bb9-8d3a-1b3bd3aae45f"), # Francisco Moreno - Warehouse
|
||||
"role": "warehouse_supervisor"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -743,7 +744,7 @@ async def create_child_outlet(
|
||||
role=staff_member["role"],
|
||||
permissions=json.dumps(["read", "write"]) if staff_member["role"] != "admin" else json.dumps(["read", "write", "admin"]),
|
||||
is_active=True,
|
||||
invited_by=demo_owner_uuid,
|
||||
invited_by=parent_owner_id,
|
||||
invited_at=datetime.now(timezone.utc),
|
||||
joined_at=datetime.now(timezone.utc),
|
||||
created_at=datetime.now(timezone.utc)
|
||||
|
||||
Reference in New Issue
Block a user