-- ============================================================ -- AIoT 智能视频管理平台 - MySQL 初始化脚本 -- 字段名与 FastAPI 端保持一致(snake_case) -- ============================================================ -- 1. ROI 区域配置(对应 FastAPI 端 roi_configs) CREATE TABLE IF NOT EXISTS wvp_ai_roi ( id INT AUTO_INCREMENT PRIMARY KEY, roi_id VARCHAR(50) NOT NULL COMMENT 'UUID,与FastAPI端同步用', camera_id VARCHAR(50) NOT NULL COMMENT '通道国标编号', channel_db_id INT NULL COMMENT 'WVP通道表ID', device_id VARCHAR(50) NULL COMMENT '设备国标编号', name VARCHAR(100) NULL COMMENT 'ROI名称', roi_type VARCHAR(20) NOT NULL DEFAULT 'rectangle' COMMENT '形状:rectangle/polygon', coordinates TEXT NOT NULL COMMENT 'JSON归一化坐标', color VARCHAR(20) NULL DEFAULT '#FF0000' COMMENT '显示颜色', priority INT NOT NULL DEFAULT 0 COMMENT '优先级', enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '启用状态', extra_params TEXT NULL COMMENT '扩展参数JSON', description VARCHAR(500) NULL COMMENT '描述', create_time VARCHAR(50) NULL COMMENT '创建时间', update_time VARCHAR(50) NULL COMMENT '更新时间', UNIQUE KEY uk_roi_id (roi_id), INDEX idx_camera_id (camera_id), INDEX idx_device_id (device_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI区域配置'; -- 2. 算法注册表(对应 FastAPI 端 algorithm_registry) CREATE TABLE IF NOT EXISTS wvp_ai_algorithm ( id INT AUTO_INCREMENT PRIMARY KEY, algo_code VARCHAR(100) NOT NULL COMMENT '算法编码', algo_name VARCHAR(200) NULL COMMENT '算法名称', target_class VARCHAR(50) NULL COMMENT '目标类别', param_schema TEXT NULL COMMENT '参数模板JSON', description VARCHAR(500) NULL COMMENT '描述', is_active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否可用', sync_time VARCHAR(50) NULL COMMENT '最后同步时间', create_time VARCHAR(50) NULL COMMENT '创建时间', update_time VARCHAR(50) NULL COMMENT '更新时间', UNIQUE KEY uk_algo_code (algo_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='算法注册表'; -- 3. ROI 算法绑定(对应 FastAPI 端 roi_algo_bind) CREATE TABLE IF NOT EXISTS wvp_ai_roi_algo_bind ( id INT AUTO_INCREMENT PRIMARY KEY, bind_id VARCHAR(50) NOT NULL COMMENT 'UUID,同步用', roi_id VARCHAR(50) NOT NULL COMMENT 'ROI的UUID', algo_code VARCHAR(100) NOT NULL COMMENT '算法编码', params TEXT NULL COMMENT '自定义参数JSON', priority INT NOT NULL DEFAULT 0 COMMENT '优先级', enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '启用状态', create_time VARCHAR(50) NULL COMMENT '创建时间', update_time VARCHAR(50) NULL COMMENT '更新时间', UNIQUE KEY uk_bind_id (bind_id), INDEX idx_roi_id (roi_id), INDEX idx_algo_code (algo_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI算法绑定'; -- 4. 配置变更日志(对应 FastAPI 端 config_update_log) CREATE TABLE IF NOT EXISTS wvp_ai_config_log ( id BIGINT AUTO_INCREMENT PRIMARY KEY, config_type VARCHAR(30) NOT NULL COMMENT '类型:ROI/ALGORITHM/BIND', config_id VARCHAR(50) NOT NULL COMMENT '目标ID', old_value TEXT NULL COMMENT '变更前JSON', new_value TEXT NULL COMMENT '变更后JSON', updated_by VARCHAR(100) NULL COMMENT '操作人', updated_at VARCHAR(50) NULL COMMENT '操作时间', INDEX idx_config_type (config_type), INDEX idx_config_id (config_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置变更日志'; -- ============================================================ -- 初始数据:预置算法(2个,与边缘端保持一致) -- ============================================================ INSERT INTO wvp_ai_algorithm (algo_code, algo_name, target_class, param_schema, description, is_active, create_time, update_time) VALUES ('leave_post', '离岗检测', 'person', '{"confirm_on_duty_sec":{"type":"int","default":10,"min":1},"confirm_leave_sec":{"type":"int","default":30,"min":1},"leave_countdown_sec":{"type":"int","default":300,"min":0},"cooldown_sec":{"type":"int","default":600,"min":0},"working_hours":{"type":"list","default":[]}}', '检测人员是否在岗,支持工作时间段配置', 1, NOW(), NOW()), ('intrusion', '周界入侵检测', 'person', '{"cooldown_seconds":{"type":"int","default":120,"min":0},"confirm_seconds":{"type":"int","default":5,"min":1}}', '检测人员进入指定区域', 1, NOW(), NOW());