-- Скрипт для очистки витринных комплектов без резервов -- Используется для схемы tenant: anatol -- Переключаемся на схему anatol SET search_path TO anatol; -- 1. Проверяем проблемные комплекты (READ ONLY) -- Витринные комплекты без зарезервированных компонентов SELECT pk.id, pk.name, s.name as showcase_name, pk.status, pk.is_temporary, (SELECT COUNT(*) FROM inventory_reservation r WHERE r.product_kit_id = pk.id AND r.showcase_id = pk.showcase_id AND r.status = 'reserved') as reserved_count FROM products_productkit pk INNER JOIN inventory_showcase s ON pk.showcase_id = s.id WHERE pk.is_temporary = TRUE AND pk.showcase_id IS NOT NULL AND pk.status = 'active' AND NOT EXISTS ( SELECT 1 FROM inventory_reservation r WHERE r.product_kit_id = pk.id AND r.showcase_id = pk.showcase_id AND r.status = 'reserved' ); -- 2. Удалить проблемные комплекты (ОПАСНО! Сначала проверьте результат выше) -- Раскомментируйте следующие строки для удаления: /* DELETE FROM products_productkit WHERE id IN ( SELECT pk.id FROM products_productkit pk WHERE pk.is_temporary = TRUE AND pk.showcase_id IS NOT NULL AND pk.status = 'active' AND NOT EXISTS ( SELECT 1 FROM inventory_reservation r WHERE r.product_kit_id = pk.id AND r.showcase_id = pk.showcase_id AND r.status = 'reserved' ) ); */