-- ----------------------------
-- 农机实时数据表
-- ----------------------------
DROP TABLE IF EXISTS `vehicle_realtime_data`;
CREATE TABLE `vehicle_realtime_data` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `device_id` varchar(64) NOT NULL COMMENT '设备ID' ,
  `report_time` datetime DEFAULT NULL COMMENT '上报时间',
  `latitude` decimal(10,6) DEFAULT NULL COMMENT '纬度',
  `longitude` decimal(10,6) DEFAULT NULL COMMENT '经度',
  `speed` decimal(10,2) DEFAULT NULL COMMENT '速度(km/h)',
  `direction` int(11) DEFAULT NULL COMMENT '行驶方向(0-360度)',
  `battery` decimal(5,2) DEFAULT NULL COMMENT '剩余电量(%)',
  `status` varchar(32) DEFAULT NULL COMMENT '状态',
  `fault_code` varchar(255) DEFAULT NULL COMMENT '故障码',
  `extend_data` text COMMENT '扩展字段(JSON)',
  `message` varchar(512) DEFAULT NULL COMMENT '设备消息',
  `progress` int(11) DEFAULT NULL COMMENT '作业完成百分比',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_device_id` (`device_id`),
  KEY `idx_report_time` (`report_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='农机实时数据表';

-- ----------------------------
-- 农机设备日志表
-- ----------------------------
DROP TABLE IF EXISTS `vehicle_device_log`;
CREATE TABLE `vehicle_device_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `event_id` varchar(64) NOT NULL COMMENT '事件ID',
  `device_id` varchar(64) NOT NULL COMMENT '设备ID',
  `event_type` varchar(32) DEFAULT NULL COMMENT '事件类型',
  `source` varchar(32) DEFAULT NULL COMMENT '事件来源',
  `action` varchar(64) DEFAULT NULL COMMENT '动作类型',
  `status` varchar(32) DEFAULT NULL COMMENT '状态',
  `operator_type` varchar(32) DEFAULT NULL COMMENT '操作人类型',
  `operator_id` varchar(64) DEFAULT NULL COMMENT '操作人ID',
  `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称',
  `trace_op_id` varchar(64) DEFAULT NULL COMMENT '操作链路ID',
  `trace_cmd_id` varchar(64) DEFAULT NULL COMMENT '指令链路ID',
  `payload_json` text COMMENT '业务扩展数据',
  `error_code` varchar(32) DEFAULT NULL COMMENT '错误码',
  `error_message` varchar(512) DEFAULT NULL COMMENT '错误描述',
  `error_level` varchar(16) DEFAULT NULL COMMENT '错误级别',
  `timestamp` bigint(20) DEFAULT NULL COMMENT '事件时间戳',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `idx_device_id` (`device_id`),
  KEY `idx_event_id` (`event_id`),
  KEY `idx_event_type` (`event_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='农机设备日志表';

-- ----------------------------
-- AI葡萄病害诊断报告表（如果需要保存病害识别数据）
-- ----------------------------
DROP TABLE IF EXISTS `ai_grape_disease_report`;
CREATE TABLE `ai_grape_disease_report` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `crop_type` varchar(64) DEFAULT NULL COMMENT '作物类型',
  `device_code` varchar(64) DEFAULT NULL COMMENT '设备编号',
  `lng` decimal(10,6) DEFAULT NULL COMMENT '经度',
  `lat` decimal(10,6) DEFAULT NULL COMMENT '纬度',
  `disease_name` varchar(128) DEFAULT NULL COMMENT '病害名称',
  `confidence` decimal(5,4) DEFAULT NULL COMMENT 'AI识别置信度',
  `collect_time` datetime DEFAULT NULL COMMENT '采集时间',
  `img_url` varchar(512) DEFAULT NULL COMMENT '病害图片URL',
  `handle_status` bigint(20) DEFAULT '0' COMMENT '处理状态(0未处理,1已处理)',
  `emergency_measure` text COMMENT '紧急处理措施',
  `manage_advice` text COMMENT '田间管理建议',
  `prevent_plan` text COMMENT '预防方案',
  `handle_note` varchar(512) DEFAULT NULL COMMENT '处理备注',
  `handle_user` varchar(64) DEFAULT NULL COMMENT '处理人',
  `handle_time` datetime DEFAULT NULL COMMENT '处理时间',
  `created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_device_code` (`device_code`),
  KEY `idx_disease_name` (`disease_name`),
  KEY `idx_collect_time` (`collect_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI葡萄病害诊断报告表';
