-- ============================================================================
-- LittleShop Database Reset - Preserve Bot & SilverPay Configuration
-- ============================================================================
-- This script clears all transactional data while preserving:
-- - Bot registrations and tokens
-- - User accounts (admin)
-- - SilverPay integration settings
-- - Push notification subscriptions
-- ============================================================================

BEGIN TRANSACTION;

-- ============================================================================
-- STEP 1: Clear Transactional Data (Orders, Payments, Messages)
-- ============================================================================

DELETE FROM CryptoPayments;
DELETE FROM OrderItems;
DELETE FROM Orders;
DELETE FROM CustomerMessages;
DELETE FROM Customers;

-- ============================================================================
-- STEP 2: Clear Product Catalog
-- ============================================================================

DELETE FROM ProductPhotos;
DELETE FROM ProductMultiBuys;
DELETE FROM ProductVariants;
DELETE FROM Products;
DELETE FROM Categories;

-- ============================================================================
-- STEP 3: Reset Auto-Increment Sequences (optional, for clean IDs)
-- ============================================================================

DELETE FROM sqlite_sequence WHERE name IN (
    'CryptoPayments', 'OrderItems', 'Orders', 'CustomerMessages',
    'Customers', 'ProductPhotos', 'ProductMultiBuys',
    'ProductVariants', 'Products', 'Categories'
);

-- ============================================================================
-- STEP 4: Verify Preserved Data
-- ============================================================================

-- These should return rows (data preserved):
-- SELECT COUNT(*) AS BotRegistrations FROM BotRegistrations WHERE IsActive = 1;
-- SELECT COUNT(*) AS AdminUsers FROM Users WHERE Role = 'Admin';
-- SELECT COUNT(*) AS PushSubscriptions FROM PushSubscriptions;

-- These should return 0 (data cleared):
-- SELECT COUNT(*) AS Orders FROM Orders;
-- SELECT COUNT(*) AS Products FROM Products;
-- SELECT COUNT(*) AS Categories FROM Categories;

COMMIT;

-- ============================================================================
-- Success! Database reset complete.
-- Preserved: Bot tokens, Admin users, Push subscriptions
-- Cleared: Orders, Products, Categories, Customers, Payments
-- ============================================================================
