From 507031deafffc6e7d179203fa28cee3c475f3e6f Mon Sep 17 00:00:00 2001 From: Urtzi Alfaro Date: Thu, 1 Jan 2026 21:09:25 +0100 Subject: [PATCH] fix issues --- .../demo_session/app/services/session_manager.py | 1 + services/orders/app/api/internal_demo.py | 6 ++++-- services/procurement/app/api/internal_demo.py | 16 ++++++++++------ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/services/demo_session/app/services/session_manager.py b/services/demo_session/app/services/session_manager.py index c9d2f7de..51600467 100644 --- a/services/demo_session/app/services/session_manager.py +++ b/services/demo_session/app/services/session_manager.py @@ -15,6 +15,7 @@ from app.models import DemoSession, DemoSessionStatus, CloningStatus from app.core.redis_wrapper import DemoRedisWrapper from app.core import settings from app.services.clone_orchestrator import CloneOrchestrator +from app.services.cleanup_service import DemoCleanupService from app.repositories.demo_session_repository import DemoSessionRepository logger = structlog.get_logger() diff --git a/services/orders/app/api/internal_demo.py b/services/orders/app/api/internal_demo.py index f5c7e426..a6a0f414 100644 --- a/services/orders/app/api/internal_demo.py +++ b/services/orders/app/api/internal_demo.py @@ -433,11 +433,13 @@ async def delete_demo_data( # Count records order_count = await db.scalar(select(func.count(CustomerOrder.id)).where(CustomerOrder.tenant_id == virtual_uuid)) - item_count = await db.scalar(select(func.count(OrderItem.id)).where(OrderItem.tenant_id == virtual_uuid)) + item_count = await db.scalar(select(func.count(OrderItem.id)).join(CustomerOrder).where(CustomerOrder.tenant_id == virtual_uuid)) customer_count = await db.scalar(select(func.count(Customer.id)).where(Customer.tenant_id == virtual_uuid)) # Delete in order - await db.execute(delete(OrderItem).where(OrderItem.tenant_id == virtual_uuid)) + await db.execute(delete(OrderItem).where(OrderItem.order_id.in_( + select(CustomerOrder.id).where(CustomerOrder.tenant_id == virtual_uuid) + ))) await db.execute(delete(CustomerOrder).where(CustomerOrder.tenant_id == virtual_uuid)) await db.execute(delete(Customer).where(Customer.tenant_id == virtual_uuid)) await db.commit() diff --git a/services/procurement/app/api/internal_demo.py b/services/procurement/app/api/internal_demo.py index 4e3716ba..d98b10c5 100644 --- a/services/procurement/app/api/internal_demo.py +++ b/services/procurement/app/api/internal_demo.py @@ -667,17 +667,21 @@ async def delete_demo_data( virtual_uuid = uuid.UUID(virtual_tenant_id) # Count records - po_count = await db.scalar(func.count(PurchaseOrder.id).where(PurchaseOrder.tenant_id == virtual_uuid)) - po_item_count = await db.scalar(func.count(PurchaseOrderItem.id).where(PurchaseOrderItem.tenant_id == virtual_uuid)) - plan_count = await db.scalar(func.count(ProcurementPlan.id).where(ProcurementPlan.tenant_id == virtual_uuid)) - replan_count = await db.scalar(func.count(ReplenishmentPlan.id).where(ReplenishmentPlan.tenant_id == virtual_uuid)) + po_count = await db.scalar(select(func.count(PurchaseOrder.id)).where(PurchaseOrder.tenant_id == virtual_uuid)) + po_item_count = await db.scalar(select(func.count(PurchaseOrderItem.id)).where(PurchaseOrderItem.tenant_id == virtual_uuid)) + plan_count = await db.scalar(select(func.count(ProcurementPlan.id)).where(ProcurementPlan.tenant_id == virtual_uuid)) + replan_count = await db.scalar(select(func.count(ReplenishmentPlan.id)).where(ReplenishmentPlan.tenant_id == virtual_uuid)) # Delete in order await db.execute(delete(PurchaseOrderItem).where(PurchaseOrderItem.tenant_id == virtual_uuid)) await db.execute(delete(PurchaseOrder).where(PurchaseOrder.tenant_id == virtual_uuid)) - await db.execute(delete(ProcurementRequirement).where(ProcurementRequirement.tenant_id == virtual_uuid)) + await db.execute(delete(ProcurementRequirement).where(ProcurementRequirement.plan_id.in_( + select(ProcurementPlan.id).where(ProcurementPlan.tenant_id == virtual_uuid) + ))) await db.execute(delete(ProcurementPlan).where(ProcurementPlan.tenant_id == virtual_uuid)) - await db.execute(delete(ReplenishmentPlanItem).where(ReplenishmentPlanItem.tenant_id == virtual_uuid)) + await db.execute(delete(ReplenishmentPlanItem).where(ReplenishmentPlanItem.replenishment_plan_id.in_( + select(ReplenishmentPlan.id).where(ReplenishmentPlan.tenant_id == virtual_uuid) + ))) await db.execute(delete(ReplenishmentPlan).where(ReplenishmentPlan.tenant_id == virtual_uuid)) await db.commit()