-- ============================================
-- 数据分析实时大屏 - 清理测试数据脚本
-- ============================================
-- 谨慎使用：此脚本会删除测试数据

-- 方式1：删除特定时间范围的测试数据（推荐）
-- 删除今日的测试订单
DELETE FROM orders 
WHERE created_at >= DATE_TRUNC('day', NOW())
  AND user_id IN (
    '11111111-1111-1111-1111-111111111111',
    '22222222-2222-2222-2222-222222222222',
    '33333333-3333-3333-3333-333333333333',
    '44444444-4444-4444-4444-444444444444',
    '55555555-5555-5555-5555-555555555555',
    '66666666-6666-6666-6666-666666666666',
    '77777777-7777-7777-7777-777777777777',
    '88888888-8888-8888-8888-888888888888'
  );

-- 删除昨日同时段的测试订单
DELETE FROM orders 
WHERE created_at >= DATE_TRUNC('day', NOW() - INTERVAL '1 day')
  AND created_at <= NOW() - INTERVAL '1 day'
  AND user_id IN (
    '11111111-1111-1111-1111-111111111111',
    '22222222-2222-2222-2222-222222222222',
    '33333333-3333-3333-3333-333333333333',
    '44444444-4444-4444-4444-444444444444',
    '55555555-5555-5555-5555-555555555555',
    '66666666-6666-6666-6666-666666666666',
    '77777777-7777-7777-7777-777777777777',
    '88888888-8888-8888-8888-888888888888'
  );

-- 删除测试用户会话
DELETE FROM user_sessions 
WHERE user_id IN (
    '11111111-1111-1111-1111-111111111111',
    '22222222-2222-2222-2222-222222222222',
    '33333333-3333-3333-3333-333333333333',
    '44444444-4444-4444-4444-444444444444',
    '55555555-5555-5555-5555-555555555555',
    '66666666-6666-6666-6666-666666666666',
    '77777777-7777-7777-7777-777777777777',
    '88888888-8888-8888-8888-888888888888'
  );

-- 删除测试访问日志
DELETE FROM page_views 
WHERE user_id IN (
    '11111111-1111-1111-1111-111111111111',
    '22222222-2222-2222-2222-222222222222',
    '33333333-3333-3333-3333-333333333333',
    '44444444-4444-4444-4444-444444444444',
    '55555555-5555-5555-5555-555555555555',
    '66666666-6666-6666-6666-666666666666',
    '77777777-7777-7777-7777-777777777777',
    '88888888-8888-8888-8888-888888888888'
  );

-- 删除测试订单商品关联
-- 说明：order_id 为 UUID，不能用 LIKE 前缀匹配；这里改为通过 orders 反查关联订单。
DELETE FROM order_items
WHERE order_id IN (
  SELECT id
  FROM orders
  WHERE user_id IN (
    '11111111-1111-1111-1111-111111111111',
    '22222222-2222-2222-2222-222222222222',
    '33333333-3333-3333-3333-333333333333',
    '44444444-4444-4444-4444-444444444444',
    '55555555-5555-5555-5555-555555555555',
    '66666666-6666-6666-6666-666666666666',
    '77777777-7777-7777-7777-777777777777',
    '88888888-8888-8888-8888-888888888888'
  )
);

-- 删除测试用户（可选，如果这些用户只用于测试）
-- 注意：如果用户有其他数据关联，可能需要先删除关联数据
-- DELETE FROM users 
-- WHERE id IN (
--     '11111111-1111-1111-1111-111111111111',
--     '22222222-2222-2222-2222-222222222222',
--     '33333333-3333-3333-3333-333333333333',
--     '44444444-4444-4444-4444-444444444444',
--     '55555555-5555-5555-5555-555555555555',
--     '66666666-6666-6666-6666-666666666666',
--     '77777777-7777-7777-7777-777777777777',
--     '88888888-8888-8888-8888-888888888888'
-- );

-- ============================================
-- 方式2：完全清空表（非常谨慎使用）
-- ============================================
-- 取消下面的注释来完全清空表
-- TRUNCATE TABLE orders, user_sessions, users, order_items, page_views CASCADE;

-- ============================================
-- 方式3：删除测试表（如果表只用于测试）
-- ============================================
-- 取消下面的注释来删除表
-- DROP TABLE IF EXISTS order_items CASCADE;
-- DROP TABLE IF EXISTS page_views CASCADE;
-- DROP TABLE IF EXISTS user_sessions CASCADE;
-- DROP TABLE IF EXISTS orders CASCADE;
-- DROP TABLE IF EXISTS users CASCADE;
-- DROP TABLE IF EXISTS products CASCADE;
-- DROP FUNCTION IF EXISTS update_updated_at_column() CASCADE;
