Commit Graph

163 Commits

Author SHA1 Message Date
6f282eff4c Fix resources isues 36 2026-01-23 10:29:16 +01:00
0ee81b9522 Fix resources isues 34 2026-01-23 06:08:12 +01:00
d2a98b90da testing ci/cd 1 2026-01-23 06:00:30 +01:00
ecdad596bf Fix resources isues 29 2026-01-22 21:41:07 +01:00
Urtzi Alfaro
aeff6b1537 Add new infra architecture 13 2026-01-21 23:16:19 +01:00
Urtzi Alfaro
35f164f0cd Add new infra architecture 2026-01-19 11:55:17 +01:00
Urtzi Alfaro
21d35ea92b Add ci/cd and fix multiple pods issues 2026-01-18 09:02:27 +01:00
Urtzi Alfaro
3c4b5c2a06 Add minio support and forntend analitycs 2026-01-17 22:42:40 +01:00
Urtzi Alfaro
4b65817b3e Add subcription feature 10 2026-01-16 23:52:26 +01:00
Urtzi Alfaro
3a7d57ef90 Add subcription feature 9 2026-01-16 20:25:45 +01:00
Urtzi Alfaro
4bafceed0d Add subcription feature 6 2026-01-16 15:19:34 +01:00
Urtzi Alfaro
6b43116efd Add subcription feature 5 2026-01-16 09:55:54 +01:00
Urtzi Alfaro
483a9f64cd Add subcription feature 4 2026-01-15 22:06:36 +01:00
Urtzi Alfaro
b674708a4c Add subcription feature 3 2026-01-15 20:45:49 +01:00
Urtzi Alfaro
a4c3b7da3f Add subcription feature 2 2026-01-14 13:15:48 +01:00
Urtzi Alfaro
6ddf608d37 Add subcription feature 2026-01-13 22:22:38 +01:00
Urtzi Alfaro
b931a5c45e Add improvements 2 2026-01-12 22:15:11 +01:00
Urtzi Alfaro
230bbe6a19 Add improvements 2026-01-12 14:24:14 +01:00
Urtzi Alfaro
5533198cab Imporve UI and token 2026-01-11 07:50:34 +01:00
Urtzi Alfaro
bf1db7cb9e New token arch 2026-01-10 21:45:37 +01:00
Urtzi Alfaro
c05538cafb Imporve monitoring 5 2026-01-09 23:14:12 +01:00
Urtzi Alfaro
22dab143ba Imporve monitoring 4 2026-01-09 14:48:44 +01:00
Urtzi Alfaro
8ca5d9c100 Imporve monitoring 2 2026-01-09 07:26:11 +01:00
Urtzi Alfaro
e8fda39e50 Improve metrics 2026-01-08 20:48:24 +01:00
Urtzi Alfaro
29d19087f1 Update monitoring packages to latest versions
- Updated all OpenTelemetry packages to latest versions:
  - opentelemetry-api: 1.27.0 → 1.39.1
  - opentelemetry-sdk: 1.27.0 → 1.39.1
  - opentelemetry-exporter-otlp-proto-grpc: 1.27.0 → 1.39.1
  - opentelemetry-exporter-otlp-proto-http: 1.27.0 → 1.39.1
  - opentelemetry-instrumentation-fastapi: 0.48b0 → 0.60b1
  - opentelemetry-instrumentation-httpx: 0.48b0 → 0.60b1
  - opentelemetry-instrumentation-redis: 0.48b0 → 0.60b1
  - opentelemetry-instrumentation-sqlalchemy: 0.48b0 → 0.60b1

- Removed prometheus-client==0.23.1 from all services
- Unified all services to use the same monitoring package versions

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-01-08 19:25:52 +01:00
Urtzi Alfaro
cf0176673c fix demo session 1 2026-01-02 11:12:50 +01:00
Urtzi Alfaro
48e64f5586 fix purchase id issue 2026-01-01 20:10:25 +01:00
Urtzi Alfaro
f10a2b92ea Improve onboarding 2025-12-18 13:26:32 +01:00
Urtzi Alfaro
d98558ed97 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>
2025-12-17 15:48:14 +01:00
Urtzi Alfaro
8bfe4f2dd7 Fix Demo enterprise 2025-12-17 13:03:52 +01:00
Urtzi Alfaro
0bbfa010bf Fix AI insights feature issues 2025-12-16 13:32:33 +01:00
Urtzi Alfaro
c68d82ca7f Fix critical bugs and standardize service integrations
Critical Fixes:
- Orchestrator: Add missing OrchestrationStatus import (fixes HTTP 500 during demo clone)
- Procurement: Migrate from custom cache utils to shared Redis utils
- Suppliers: Use proper Settings for Redis configuration with TLS/auth
- Recipes/Suppliers clients: Fix endpoint paths (remove duplicate path segments)
- Procurement client: Use suppliers service directly for supplier details

Details:
1. services/orchestrator/app/api/internal_demo.py:
   - Added OrchestrationStatus import to fix cloning error
   - This was causing HTTP 500 errors during demo session cloning

2. services/procurement/app/api/purchase_orders.py + service:
   - Replaced app.utils.cache with shared.redis_utils
   - Standardizes caching across all services
   - Removed custom cache utilities (deleted app/utils/cache.py)

3. services/suppliers/app/consumers/alert_event_consumer.py:
   - Use Settings().REDIS_URL instead of os.getenv
   - Ensures proper Redis connection with TLS and authentication

4. shared/clients/recipes_client.py:
   - Fixed endpoint paths: recipes/recipes/{id} → recipes/{id}
   - Applied to all recipe methods (by_id, by_products, instructions, yield)

5. shared/clients/suppliers_client.py:
   - Fixed endpoint path: suppliers/suppliers/{id} → suppliers/{id}

6. shared/clients/procurement_client.py:
   - get_supplier_by_id now uses SuppliersServiceClient directly
   - Removes incorrect call to procurement service for supplier details

Impact:
- Demo session cloning now works without orchestrator errors 
- Consistent Redis usage across all services
- Correct service boundaries (suppliers data from suppliers service)
- Clean client endpoint paths

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 11:33:22 +01:00
Urtzi Alfaro
9f3b39bd28 Add comprehensive documentation and final improvements
Documentation Added:
- AI_INSIGHTS_DEMO_SETUP_GUIDE.md: Complete setup guide for demo sessions
- AI_INSIGHTS_DATA_FLOW.md: Architecture and data flow diagrams
- AI_INSIGHTS_QUICK_START.md: Quick reference guide
- DEMO_SESSION_ANALYSIS_REPORT.md: Detailed analysis of demo session d67eaae4
- ROOT_CAUSE_ANALYSIS_AND_FIXES.md: Complete analysis of 8 issues (6 fixed, 2 analyzed)
- COMPLETE_FIX_SUMMARY.md: Executive summary of all fixes
- FIX_MISSING_INSIGHTS.md: Forecasting and procurement fix guide
- FINAL_STATUS_SUMMARY.md: Status overview
- verify_fixes.sh: Automated verification script
- enhance_procurement_data.py: Procurement data enhancement script

Service Improvements:
- Demo session cleanup worker: Use proper settings for Redis configuration with TLS/auth
- Procurement service: Add Redis initialization with proper error handling and cleanup
- Production fixture: Remove duplicate worker assignments (cleaned 56 duplicates)
- Orchestrator fixture: Add purchase order metadata for better tracking

Impact:
- Complete documentation for troubleshooting and setup
- Improved Redis connection handling across services
- Clean production data without duplicates
- Better error handling and logging

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 11:32:45 +01:00
Urtzi Alfaro
4418ff0876 Add forecasting demand insights trigger + fix RabbitMQ cleanup
Issue 1: Forecasting demand insights not triggered in demo workflow
- Created internal ML endpoint: /forecasting/internal/ml/generate-demand-insights
- Added trigger_demand_insights_internal() to ForecastServiceClient
- Integrated forecasting insights into demo session post-clone workflow
- Now triggers 4 AI insight types: price, safety stock, yield, + demand

Issue 2: RabbitMQ client cleanup error in procurement service
- Fixed: rabbitmq_client.close() → rabbitmq_client.disconnect()
- Added proper cleanup in exception handler
- Error: "'RabbitMQClient' object has no attribute 'close'"

Files modified:
- services/forecasting/app/api/ml_insights.py (new internal_router)
- services/forecasting/app/main.py (register internal router)
- shared/clients/forecast_client.py (new trigger method)
- services/demo_session/app/services/clone_orchestrator.py (+ demand insights)
- services/procurement/app/api/internal_demo.py (fix disconnect)

Expected impact:
- Demo sessions will now generate demand forecasting insights
- No more RabbitMQ cleanup errors in logs
- AI insights count should increase from 1 to 2-3 per session

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 11:28:04 +01:00
Urtzi Alfaro
dd79e6d85e Fix procurement data structure and add price trends
Fixed critical structural issues in procurement fixture:

1. **Removed duplicate nested items** (32 items):
   - Previous enhancement script incorrectly added 'items' arrays
     inside purchase_orders
   - Procurement service uses separate purchase_order_items table
   - Removed all nested 'items' to match PurchaseOrderItem model

2. **Added price trends to existing PO items** (10 items updated):
   - Harina T55: +8% (€0.85 → €0.92)
   - Harina T65: +6% (€0.95 → €1.01)
   - Mantequilla: +12% (€6.50 → €7.28) - highest increase
   - Leche: -3% (€0.95 → €0.92) - seasonal surplus
   - Levadura: +4% (€4.20 → €4.37)
   - Azúcar: +2% (€1.10 → €1.12) - stable

3. **Recalculated PO totals** based on updated item prices

This enables procurement AI insights:
- Price trend analysis and alerts
- Supplier performance comparison
- Cost optimization recommendations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 11:01:43 +01:00
Urtzi Alfaro
c566967bea Add AI insights feature 2025-12-15 21:14:22 +01:00
Urtzi Alfaro
5642b5a0c0 demo seed change 7 2025-12-15 13:39:33 +01:00
Urtzi Alfaro
56a1821256 demo seed change 5 2025-12-14 20:13:59 +01:00
Urtzi Alfaro
82f9622411 demo seed change 4 2025-12-14 19:05:37 +01:00
Urtzi Alfaro
4ae5356ad1 demo seed change 3 2025-12-14 16:04:16 +01:00
Urtzi Alfaro
a030bd14c8 demo seed change 2 2025-12-14 11:58:14 +01:00
Urtzi Alfaro
ff830a3415 demo seed change 2025-12-13 23:57:54 +01:00
Urtzi Alfaro
10c779858a Fix enum mismatch: Update Python enums and seed data to match database uppercase values
- Fixed ProductType enum values from lowercase to uppercase (INGREDIENT, FINISHED_PRODUCT)
- Fixed UnitOfMeasure enum values from lowercase/abbreviated to uppercase (KILOGRAMS, LITERS, etc.)
- Fixed IngredientCategory enum values from lowercase to uppercase (FLOUR, YEAST, etc.)
- Fixed ProductCategory enum values from lowercase to uppercase (BREAD, CROISSANTS, etc.)
- Updated seed data files to use correct uppercase enum values
- Fixed hardcoded enum references throughout the codebase
- This resolves the InvalidTextRepresentationError when inserting inventory data

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2025-12-13 16:49:04 +01:00
Urtzi Alfaro
508f4569b9 Fix and UI imporvements 2025-12-09 10:21:41 +01:00
Urtzi Alfaro
667e6e0404 New alert service 2025-12-05 20:07:01 +01:00
Urtzi Alfaro
0da0470786 New enterprise feature2 2025-11-30 16:29:38 +01:00
Urtzi Alfaro
972db02f6d New enterprise feature 2025-11-30 09:12:40 +01:00
Urtzi Alfaro
e902419b6e New alert system and panel de control page 2025-11-27 15:52:40 +01:00
Urtzi Alfaro
1a2f4602f3 revert(demo): Restore BASE_REFERENCE_DATE to November 25, 2025
The date adjustment logic was correct. The BASE_REFERENCE_DATE is used
by adjust_date_for_demo() to calculate offsets relative to demo session
creation time, not to filter for "today's" data.

Production batches showing "Sin Plan" must have a different root cause.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 11:04:21 +01:00
Urtzi Alfaro
b545d05d23 fix(dashboard): Fix production plans and reasoning modal issues
1. **Fix "Sin Plan" (No Production Planned)**:
   - Updated BASE_REFERENCE_DATE from Nov 25 to Nov 27 to match current date
   - Production batches were being filtered out because they were dated for Nov 25
   - The get_todays_batches() method filters for batches scheduled TODAY

2. **Fix "Ver razonamiento" Button Not Opening Modal**:
   - Changed handleOpenReasoning() to always emit 'reasoning:show' event
   - Previous logic tried to navigate to PO/batch detail pages instead
   - Now keeps user on dashboard and shows reasoning modal inline
   - Passes all metadata (action_id, po_id, batch_id, reasoning) in event

This ensures production progress shows correctly and users can view
AI reasoning without leaving the dashboard.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 11:02:59 +01:00