-- =============================================
-- 车辆资产管理模块 DDL
-- =============================================

-- 2.1 asset_vehicle — 车辆主表
DROP TABLE IF EXISTS `asset_vehicle`;
CREATE TABLE `asset_vehicle` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  -- 基本标识
  `plate_number` varchar(20) NOT NULL COMMENT '车牌号',
  `vin` varchar(50) DEFAULT NULL COMMENT '车架号（VIN码）',
  `vehicle_code` varchar(64) DEFAULT NULL COMMENT '车辆编号',
  -- 型号参数
  `vehicle_type_id` bigint DEFAULT NULL COMMENT '车辆类型ID（关联 asset_vehicle_type）',
  `vehicle_model_id` bigint DEFAULT NULL COMMENT '车辆型号ID（关联 asset_vehicle_model）',
  `brand` varchar(64) DEFAULT NULL COMMENT '品牌',
  `model` varchar(64) DEFAULT NULL COMMENT '型号',
  `color` varchar(32) DEFAULT NULL COMMENT '车身颜色',
  `engine_no` varchar(64) DEFAULT NULL COMMENT '发动机号/电机编号',
  `energy_type` tinyint DEFAULT NULL COMMENT '能源类型',
  `seat_count` int DEFAULT NULL COMMENT '座位数',
  `load_capacity` decimal(10,2) DEFAULT NULL COMMENT '额定载重（吨）',
  -- 运营归属
  `province` varchar(32) DEFAULT NULL COMMENT '运营省份',
  `city` varchar(32) DEFAULT NULL COMMENT '运营城市',
  `parking_id` bigint DEFAULT NULL COMMENT '停车场ID（关联 asset_parking）',
  `parking_position` varchar(128) DEFAULT NULL COMMENT '停车位置',
  `owner_company` varchar(128) DEFAULT NULL COMMENT '登记所有权公司',
  `ownership_type` tinyint DEFAULT NULL COMMENT '归属类型',
  `dept_id` bigint DEFAULT NULL COMMENT '所属部门ID',
  -- 采购信息
  `purchase_date` date DEFAULT NULL COMMENT '采购入库日期',
  `purchase_price` decimal(12,2) DEFAULT NULL COMMENT '购入价格（元）',
  `manufacture_year` int DEFAULT NULL COMMENT '出厂年份',
  `registration_date` date DEFAULT NULL COMMENT '注册登记日期',
  `mandatory_scrap_date` date DEFAULT NULL COMMENT '强制报废期',
  -- 里程
  `mileage` decimal(12,2) DEFAULT 0.00 COMMENT '当前里程（公里）',
  -- 多维状态
  `rent_status` tinyint NOT NULL DEFAULT 0 COMMENT '租赁状态',
  `operational_status` tinyint NOT NULL DEFAULT 0 COMMENT '运营状态',
  `preparation_status` tinyint NOT NULL DEFAULT 0 COMMENT '整备状态',
  `repair_status` tinyint NOT NULL DEFAULT 0 COMMENT '维修状态',
  `license_status` tinyint NOT NULL DEFAULT 0 COMMENT '证照状态',
  `scrap_status` tinyint NOT NULL DEFAULT 0 COMMENT '报废状态',
  -- 业务关联（冗余字段加速查询）
  `contract_id` bigint DEFAULT NULL COMMENT '当前合同ID',
  `contract_no` varchar(64) DEFAULT NULL COMMENT '当前合同编号',
  `customer_name` varchar(128) DEFAULT NULL COMMENT '当前客户名称',
  -- 交还车快照
  `last_delivery_time` datetime DEFAULT NULL COMMENT '最近交车时间',
  `last_delivery_mileage` decimal(12,2) DEFAULT NULL COMMENT '最近交车里程',
  `last_return_time` datetime DEFAULT NULL COMMENT '最近还车时间',
  `last_return_mileage` decimal(12,2) DEFAULT NULL COMMENT '最近还车里程',
  -- 评级
  `resource_category` varchar(32) DEFAULT NULL COMMENT '资源分类',
  `asset_rating` varchar(32) DEFAULT NULL COMMENT '资产评级',
  `rating_time` date DEFAULT NULL COMMENT '评级时间',
  -- GPS
  `current_location` varchar(256) DEFAULT NULL COMMENT 'GPS当前位置',
  `longitude` decimal(10,7) DEFAULT NULL COMMENT 'GPS经度',
  `latitude` decimal(10,7) DEFAULT NULL COMMENT 'GPS纬度',
  `gps_last_time` datetime DEFAULT NULL COMMENT 'GPS最后上报时间',
  -- 通用
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态（0正常 1停用）',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_plate_number` (`plate_number`, `tenant_id`),
  UNIQUE KEY `uk_vin` (`vin`, `tenant_id`),
  KEY `idx_vehicle_type_id` (`vehicle_type_id`),
  KEY `idx_vehicle_model_id` (`vehicle_model_id`),
  KEY `idx_rent_status` (`rent_status`),
  KEY `idx_dept_id` (`dept_id`),
  KEY `idx_parking_id` (`parking_id`),
  KEY `idx_contract_id` (`contract_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆主表';

-- 2.2 asset_vehicle_licence — 车辆证照表
DROP TABLE IF EXISTS `asset_vehicle_licence`;
CREATE TABLE `asset_vehicle_licence` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `vehicle_id` bigint NOT NULL COMMENT '车辆ID',
  -- 行驶证
  `driving_register_date` date DEFAULT NULL COMMENT '行驶证注册日期',
  `driving_expire_date` date DEFAULT NULL COMMENT '行驶证有效期',
  `driving_scrap_date` date DEFAULT NULL COMMENT '行驶证强制报废日期',
  -- 营运证
  `operation_num` varchar(64) DEFAULT NULL COMMENT '营运证编号',
  `operation_register_date` date DEFAULT NULL COMMENT '营运证注册日期',
  `operation_expire_date` date DEFAULT NULL COMMENT '营运证有效期',
  `operation_verify_expire_date` date DEFAULT NULL COMMENT '营运证审验有效期',
  -- 通行证
  `pass_num` varchar(64) DEFAULT NULL COMMENT '通行证编号',
  `pass_area` varchar(256) DEFAULT NULL COMMENT '通行区域',
  `pass_expire_date` date DEFAULT NULL COMMENT '通行证有效期',
  -- 加氢证
  `hydrogen_num` varchar(64) DEFAULT NULL COMMENT '加氢证编码',
  `hydrogen_check_date` date DEFAULT NULL COMMENT '加氢证检验日期',
  `hydrogen_card_num` varchar(64) DEFAULT NULL COMMENT '加氢卡编码',
  `hydrogen_expire_date` date DEFAULT NULL COMMENT '加氢证有效期',
  -- 氢瓶/安全阀/压力表检验
  `hydrogen_cylinder_factory` varchar(128) DEFAULT NULL COMMENT '氢气瓶厂家',
  `hydrogen_cylinder_inspect_date` date DEFAULT NULL COMMENT '氢气瓶检验日期',
  `hydrogen_cylinder_inspect_cycle` int DEFAULT NULL COMMENT '氢气瓶检验周期（月）',
  `hydrogen_cylinder_expire_date` date DEFAULT NULL COMMENT '氢瓶检测有效期',
  `safety_valve_inspect_date` date DEFAULT NULL COMMENT '安全阀检验日期',
  `safety_valve_inspect_cycle` int DEFAULT NULL COMMENT '安全阀检验周期（月）',
  `safety_valve_expire_date` date DEFAULT NULL COMMENT '安全阀检测有效期',
  `pressure_gauge_inspect_date` date DEFAULT NULL COMMENT '压力表检验日期',
  `pressure_gauge_inspect_cycle` int DEFAULT NULL COMMENT '压力表检验周期（月）',
  `pressure_gauge_expire_date` date DEFAULT NULL COMMENT '压力表检测有效期',
  -- 年审
  `annual_review_expire_date` date DEFAULT NULL COMMENT '年审到期时间',
  `rating_date` date DEFAULT NULL COMMENT '等评时间',
  -- 附件
  `attachment_urls` varchar(1024) DEFAULT NULL COMMENT '证照附件URL（JSON数组）',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_vehicle_id` (`vehicle_id`, `tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆证照表';

-- 2.3 asset_vehicle_insurance — 车辆保险表
DROP TABLE IF EXISTS `asset_vehicle_insurance`;
CREATE TABLE `asset_vehicle_insurance` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `vehicle_id` bigint NOT NULL COMMENT '车辆ID',
  `insurance_type` tinyint NOT NULL COMMENT '保险类型',
  `insurance_company_id` bigint DEFAULT NULL COMMENT '保险公司ID（关联 asset_insurance_company）',
  `insurance_company_name` varchar(128) DEFAULT NULL COMMENT '保险公司名称（冗余）',
  `policy_no` varchar(128) DEFAULT NULL COMMENT '保单号',
  `third_party_limit` decimal(14,2) DEFAULT NULL COMMENT '第三者责任额度（元）',
  `premium` decimal(12,2) DEFAULT NULL COMMENT '保费（元）',
  `cost_bearing_org` varchar(128) DEFAULT NULL COMMENT '保费承担公司',
  `effective_date` date DEFAULT NULL COMMENT '保单生效日期',
  `expire_date` date DEFAULT NULL COMMENT '保单到期日期',
  `warranty_attachment` varchar(512) DEFAULT NULL COMMENT '保单附件URL',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_vehicle_id` (`vehicle_id`),
  KEY `idx_expire_date` (`expire_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆保险表';

-- 2.4 asset_vehicle_equipment — 后装设备表
DROP TABLE IF EXISTS `asset_vehicle_equipment`;
CREATE TABLE `asset_vehicle_equipment` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `vehicle_id` bigint NOT NULL COMMENT '车辆ID',
  `equipment_type` tinyint NOT NULL COMMENT '设备类型',
  `equipment_name` varchar(128) DEFAULT NULL COMMENT '设备名称',
  `equipment_no` varchar(128) DEFAULT NULL COMMENT '设备编号',
  `supplier_name` varchar(128) DEFAULT NULL COMMENT '供应商',
  `install_date` date DEFAULT NULL COMMENT '安装日期',
  `expire_date` date DEFAULT NULL COMMENT '到期日期',
  `equipment_status` varchar(32) DEFAULT NULL COMMENT '设备状态',
  -- 尾板专用字段
  `tailboard_model` varchar(64) DEFAULT NULL COMMENT '尾板型号',
  `tailboard_no` varchar(64) DEFAULT NULL COMMENT '尾板编号',
  `tailboard_weight` decimal(10,2) DEFAULT NULL COMMENT '尾板自重（kg）',
  `tailboard_rated_load` decimal(10,2) DEFAULT NULL COMMENT '尾板额定载荷（t）',
  `tailboard_info` varchar(500) DEFAULT NULL COMMENT '尾板信息',
  `certificate_attachment` varchar(512) DEFAULT NULL COMMENT '合格证附件URL',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_vehicle_id` (`vehicle_id`),
  KEY `idx_equipment_type` (`equipment_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆后装设备表';

-- 2.5 asset_vehicle_ext — 车辆扩展信息表
DROP TABLE IF EXISTS `asset_vehicle_ext`;
CREATE TABLE `asset_vehicle_ext` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `vehicle_id` bigint NOT NULL COMMENT '车辆ID',
  -- 车身广告
  `has_body_advertisement` tinyint DEFAULT 0 COMMENT '是否有车身广告（0否 1是）',
  `advertisement_apply_date` date DEFAULT NULL COMMENT '广告喷涂时间',
  `advertisement_remark` varchar(500) DEFAULT NULL COMMENT '广告备注',
  `advertisement_photo_urls` varchar(1024) DEFAULT NULL COMMENT '广告照片URL（JSON数组）',
  -- 氢能参数
  `hydrogen_capacity` decimal(10,2) DEFAULT NULL COMMENT '氢瓶容量（L）',
  `battery_capacity` decimal(10,2) DEFAULT NULL COMMENT '储电量（kWh）',
  `battery_factory` varchar(128) DEFAULT NULL COMMENT '电池厂家',
  `fuel_cell_factory` varchar(128) DEFAULT NULL COMMENT '电堆厂家',
  `hydrogen_system_factory` varchar(128) DEFAULT NULL COMMENT '氢系统厂家',
  `chiller_factory` varchar(128) DEFAULT NULL COMMENT '冷机厂家',
  -- 轮胎
  `tire_count` int DEFAULT NULL COMMENT '轮胎数量',
  `tire_spec` varchar(64) DEFAULT NULL COMMENT '轮胎规格',
  -- 车辆尺寸
  `body_length` decimal(10,2) DEFAULT NULL COMMENT '车身长（mm）',
  `body_width` decimal(10,2) DEFAULT NULL COMMENT '车身宽（mm）',
  `body_height` decimal(10,2) DEFAULT NULL COMMENT '车身高（mm）',
  -- 公告信息
  `notice_model` varchar(128) DEFAULT NULL COMMENT '公告型号',
  `dashboard_mode` varchar(64) DEFAULT NULL COMMENT '仪表盘模式',
  -- 租赁来源
  `rent_from_company` varchar(128) DEFAULT NULL COMMENT '租赁来源公司',
  -- 车辆批次
  `vehicle_batch` varchar(64) DEFAULT NULL COMMENT '车辆批次',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_vehicle_id` (`vehicle_id`, `tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆扩展信息表';

-- 2.6 asset_driver — 司机表
DROP TABLE IF EXISTS `asset_driver`;
CREATE TABLE `asset_driver` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint DEFAULT NULL COMMENT '关联系统用户ID',
  `name` varchar(64) NOT NULL COMMENT '姓名',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  `id_card_no` varchar(30) DEFAULT NULL COMMENT '身份证号',
  `gender` tinyint DEFAULT NULL COMMENT '性别（1男 2女）',
  `birth_date` date DEFAULT NULL COMMENT '出生日期',
  `driver_license_no` varchar(64) DEFAULT NULL COMMENT '驾驶证号',
  `driver_license_type` varchar(10) DEFAULT NULL COMMENT '驾驶证类型（A1/A2/B1/B2/C1等）',
  `driver_license_expire` date DEFAULT NULL COMMENT '驾驶证到期日',
  `qualification_cert_no` varchar(64) DEFAULT NULL COMMENT '从业资格证号',
  `qualification_cert_expire` date DEFAULT NULL COMMENT '从业资格证到期日',
  `entry_date` date DEFAULT NULL COMMENT '入职日期',
  `leave_date` date DEFAULT NULL COMMENT '离职日期',
  `monthly_pay` decimal(10,2) DEFAULT NULL COMMENT '月薪（元）',
  `emergency_contact` varchar(64) DEFAULT NULL COMMENT '紧急联系人',
  `emergency_phone` varchar(20) DEFAULT NULL COMMENT '紧急联系电话',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态（0正常 1停用）',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_phone` (`phone`),
  KEY `idx_id_card_no` (`id_card_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='司机信息表';

-- 2.7 asset_driver_vehicle — 司机车辆绑定表
DROP TABLE IF EXISTS `asset_driver_vehicle`;
CREATE TABLE `asset_driver_vehicle` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `driver_id` bigint NOT NULL COMMENT '司机ID',
  `vehicle_id` bigint NOT NULL COMMENT '车辆ID',
  `plate_number` varchar(20) DEFAULT NULL COMMENT '车牌号（冗余）',
  `driver_name` varchar(64) DEFAULT NULL COMMENT '司机姓名（冗余）',
  `driver_phone` varchar(20) DEFAULT NULL COMMENT '司机电话（冗余）',
  `bind_time` datetime DEFAULT NULL COMMENT '绑定时间',
  `unbind_time` datetime DEFAULT NULL COMMENT '解绑时间',
  `bind_status` tinyint NOT NULL DEFAULT 1 COMMENT '绑定状态（0已解绑 1已绑定）',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_driver_id` (`driver_id`),
  KEY `idx_vehicle_id` (`vehicle_id`),
  KEY `idx_bind_status` (`bind_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='司机车辆绑定表';

-- 2.8 asset_device — IoT设备表
DROP TABLE IF EXISTS `asset_device`;
CREATE TABLE `asset_device` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `imei` varchar(64) NOT NULL COMMENT '设备IMEI号',
  `name` varchar(128) DEFAULT NULL COMMENT '设备名称',
  `type` tinyint NOT NULL COMMENT '设备类型',
  `brand` varchar(64) DEFAULT NULL COMMENT '品牌',
  `model` varchar(64) DEFAULT NULL COMMENT '型号',
  `sim_no` varchar(32) DEFAULT NULL COMMENT 'SIM卡号',
  `bind_status` tinyint NOT NULL DEFAULT 0 COMMENT '绑定状态（0未绑定 1已绑定）',
  `vehicle_id` bigint DEFAULT NULL COMMENT '当前绑定车辆ID',
  `service_expire_time` date DEFAULT NULL COMMENT '服务到期时间',
  `dept_id` bigint DEFAULT NULL COMMENT '所属部门ID',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态（0正常 1停用）',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_imei` (`imei`, `tenant_id`),
  KEY `idx_type` (`type`),
  KEY `idx_bind_status` (`bind_status`),
  KEY `idx_vehicle_id` (`vehicle_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='IoT设备表';

-- 2.9 asset_vehicle_type — 车型表
DROP TABLE IF EXISTS `asset_vehicle_type`;
CREATE TABLE `asset_vehicle_type` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `code` varchar(64) NOT NULL COMMENT '类型编码',
  `name` varchar(128) NOT NULL COMMENT '类型名称',
  `group_name` varchar(128) DEFAULT NULL COMMENT '类型分组',
  `sort` int NOT NULL DEFAULT 0 COMMENT '排序',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态（0正常 1停用）',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_code` (`code`, `tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆类型表';

-- 2.10 asset_vehicle_model — 车辆型号参数表
DROP TABLE IF EXISTS `asset_vehicle_model`;
CREATE TABLE `asset_vehicle_model` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `brand_name` varchar(64) NOT NULL COMMENT '品牌名',
  `model_name` varchar(64) NOT NULL COMMENT '型号名',
  `vehicle_type` varchar(64) DEFAULT NULL COMMENT '车辆类型',
  `fuel_type` varchar(32) DEFAULT NULL COMMENT '燃料种类',
  `plate_color` tinyint DEFAULT NULL COMMENT '车牌颜色（0绿 1黄 2黄绿）',
  -- 尺寸
  `body_length` decimal(10,2) DEFAULT NULL COMMENT '车身长（mm）',
  `body_width` decimal(10,2) DEFAULT NULL COMMENT '车身宽（mm）',
  `body_height` decimal(10,2) DEFAULT NULL COMMENT '车身高（mm）',
  -- 轮胎
  `tire_count` int DEFAULT NULL COMMENT '轮胎数量',
  `tire_spec` varchar(64) DEFAULT NULL COMMENT '轮胎规格',
  -- 电池
  `battery_type` tinyint DEFAULT NULL COMMENT '电池类型（0磷酸铁锂 1三元锂）',
  `battery_maker` varchar(128) DEFAULT NULL COMMENT '电池厂家',
  `battery_capacity` decimal(10,2) DEFAULT NULL COMMENT '储电量（kWh）',
  `electric_range` decimal(10,2) DEFAULT NULL COMMENT '纯电续航（KM）',
  -- 氢能
  `hydrogen_capacity` decimal(10,2) DEFAULT NULL COMMENT '氢箱容量（L）',
  `hydrogen_range` decimal(10,2) DEFAULT NULL COMMENT '氢续航（KM）',
  `hydrogen_system_maker` varchar(128) DEFAULT NULL COMMENT '氢系统厂家',
  `fuel_cell_maker` varchar(128) DEFAULT NULL COMMENT '电堆厂家',
  -- 其他
  `chiller_maker` varchar(128) DEFAULT NULL COMMENT '冷机厂家',
  `dashboard_mode` varchar(64) DEFAULT NULL COMMENT '仪表盘模式',
  `notice_model` varchar(128) DEFAULT NULL COMMENT '公告型号',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态（0正常 1停用）',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  -- yudao 标准字段
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_brand_model` (`brand_name`, `model_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆型号参数表';
