-- ============================================================
-- 供水管网 T5 阈值管理 测试数据脚本（KingbaseES）
-- 说明：
--   1. 依赖 T4 已初始化的规范设备类型和供水监测设备：
--      ws_flow / ws_pressure / ws_leak，父类型 parent_type_id=1。
--   2. 阈值测试主键使用 WS-TEST-THR- 前缀，可重复执行。
--   3. 覆盖全天生效、分时生效、流量/压力/漏失三类传感器和筛选场景。
-- ============================================================

-- 清理历史阈值测试数据
DELETE FROM app_user.warning_threshold
 WHERE id LIKE 'WS-TEST-THR-%'
    OR warning_code IN ('WARN-T5-FLOW', 'WARN-T5-PRESSURE', 'WARN-T5-LEAK');

-- 校验规范设备类型存在，避免把阈值测试数据写到非供水设备上
DO $$
DECLARE
    v_type_count integer;
BEGIN
    SELECT count(*) INTO v_type_count
      FROM app_user.equipment_type
     WHERE type_id IN ('ws_flow', 'ws_pressure', 'ws_leak')
       AND parent_type_id = '1';
    IF v_type_count <> 3 THEN
        RAISE EXCEPTION '缺少规范供水监测子类型：ws_flow/ws_pressure/ws_leak 必须 parent_type_id=1';
    END IF;
END $$;

INSERT INTO app_user.warning_threshold
    (id, device_code, warning_type, warning_code, min_value, max_value,
     period_start, period_end, remark, create_time, update_time)
VALUES
    ('WS-TEST-THR-FLOW-ALL', 'CN-GS-202609020001', '流量预警', 'WARN-T5-FLOW',
     20.00, 40.00, NULL, NULL, '供水T5阈值测试-流量全天生效',
     now(), now()),
    ('WS-TEST-THR-FLOW-PERIOD', 'CN-GS-202609020002', '流量预警', 'WARN-T5-FLOW',
     25.00, 45.00, '08:00', '20:00', '供水T5阈值测试-流量分时生效',
     now(), now()),
    ('WS-TEST-THR-PRESSURE-ALL', 'CB-GS-202609020001', '压力预警', 'WARN-T5-PRESSURE',
     0.30, 0.60, NULL, NULL, '供水T5阈值测试-压力全天生效',
     now(), now()),
    ('WS-TEST-THR-LEAK-PERIOD', 'TC-GS-202609020001', '漏失预警', 'WARN-T5-LEAK',
     8.00, 15.00, '08:00', '20:00', '供水T5阈值测试-漏失分时生效',
     now(), now());

-- 快速核验：
--   阈值分页 total=4；
--   设备编码筛选 CN-GS-202609020001 返回 1 条；
--   预警分类筛选 流量预警 返回 2 条；
--   WARN-T5-FLOW 在 CN-GS-202609020002 上已存在 08:00-20:00，
--   再次保存 19:00-21:00 应返回重叠时段错误。
