-- ============================================================
-- 供水管网安全运行监测子系统 - 监测报警模块 数据库脚本
-- 数据库：PostgreSQL
-- 说明：本项目运行库为 PostgreSQL（schema: app_user），
--       若 warning_threshold 不在 app_user schema 下，请去掉前缀或调整 search_path。
-- ============================================================

-- ------------------------------------------------------------
-- 1. 报警审核表（报警审核/解除 + 意见 + 附件 + 全流程跟踪）
-- ------------------------------------------------------------
CREATE TABLE IF NOT EXISTS app_user.alarm_audit (
	audit_id bigserial NOT NULL,
	alarm_id varchar(64) NOT NULL,
	-- 审核动作：1-审核 2-解除
	audit_action int2 NOT NULL,
	-- 审核结果：1-属实/审核通过 2-误报/解除报警
	audit_result int2 NOT NULL,
	-- 审核/解除意见
	audit_opinion varchar(500) NULL,
	-- 附件地址（多个用逗号分隔）
	attach_url text NULL,
	-- 操作人
	audit_user_id int8 NULL,
	audit_user_name varchar(50) NULL,
	-- 操作时间
	audit_time sys."timestamp" NULL,
	create_time sys."timestamp" NULL,
	update_time sys."timestamp" NULL,
	CONSTRAINT alarm_audit_pkey PRIMARY KEY (audit_id)
);

CREATE INDEX IF NOT EXISTS idx_alarm_audit_alarm_id ON app_user.alarm_audit USING btree (alarm_id);
CREATE INDEX IF NOT EXISTS idx_alarm_audit_time ON app_user.alarm_audit USING btree (audit_time);

COMMENT ON TABLE app_user.alarm_audit IS '供水监测报警审核记录表';
COMMENT ON COLUMN app_user.alarm_audit.audit_action IS '审核动作：1-审核 2-解除';
COMMENT ON COLUMN app_user.alarm_audit.audit_result IS '审核结果：1-属实/审核通过 2-误报/解除报警';

-- ------------------------------------------------------------
-- 2. 预警阈值表补充分时阈值字段（分时阈值设置）
--    period_start / period_end 格式 HH:mm，为空表示全天生效；
--    同一设备+预警编码可配置多条不同时段阈值，时段不允许重叠。
-- ------------------------------------------------------------
ALTER TABLE warning_threshold ADD COLUMN IF NOT EXISTS period_start varchar(5) NULL;
ALTER TABLE warning_threshold ADD COLUMN IF NOT EXISTS period_end varchar(5) NULL;

COMMENT ON COLUMN warning_threshold.period_start IS '分时阈值生效开始时间（HH:mm），为空表示全天生效';
COMMENT ON COLUMN warning_threshold.period_end IS '分时阈值生效结束时间（HH:mm），为空表示全天生效';

-- ------------------------------------------------------------
-- 3. 可选：菜单/权限初始化（按需执行）
--    父菜单：供水管网安全运行监测子系统（若不存在则创建）
-- ------------------------------------------------------------
-- INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
-- SELECT '监测报警', menu_id, 10, 'monitorAlarm', 'waterSupply/monitorAlarm/index', '1', '0', 'C', '0', '0', 'waterSupply:alarm:list', 'monitor', 'admin', now(), '供水管网-监测报警'
-- FROM sys_menu WHERE menu_name = '供水管网安全运行监测子系统' AND parent_id = 0 AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'waterSupply:alarm:list');
