-- 车辆上牌记录表
CREATE TABLE IF NOT EXISTS `asset_vehicle_registration` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `vehicle_id` BIGINT NOT NULL COMMENT '车辆ID',
    `vin` VARCHAR(50) NOT NULL COMMENT '车辆识别代号（VIN）',
    `plate_no` VARCHAR(20) NOT NULL COMMENT '车牌号',
    `plate_date` DATE NOT NULL COMMENT '上牌日期',
    `operator` VARCHAR(50) COMMENT '操作员',

    -- OCR 识别信息
    `recognized_brand` VARCHAR(100) COMMENT 'OCR识别的品牌型号',
    `recognized_model` VARCHAR(100) COMMENT 'OCR识别的车型',
    `vehicle_type` VARCHAR(50) COMMENT '车辆类型',
    `owner` VARCHAR(100) COMMENT '所有人',
    `use_character` VARCHAR(50) COMMENT '使用性质',
    `engine_no` VARCHAR(50) COMMENT '发动机号码',
    `register_date` DATE COMMENT '注册日期',
    `issue_date` DATE COMMENT '发证日期',
    `inspection_record` VARCHAR(50) COMMENT '检验记录',
    `scrap_date` DATE COMMENT '强制报废期止',
    `curb_weight` VARCHAR(20) COMMENT '整备质量（kg）',
    `total_mass` VARCHAR(20) COMMENT '总质量（kg）',
    `approved_passenger_capacity` VARCHAR(20) COMMENT '核定载人数',

    -- 匹配信息
    `vehicle_model_id` BIGINT COMMENT '匹配的车型ID',
    `match_confidence` DECIMAL(5,2) COMMENT '匹配置信度（0-100）',
    `match_method` VARCHAR(20) COMMENT '匹配方式（exact/fuzzy/manual）',

    -- 照片信息
    `photo_url` VARCHAR(500) COMMENT '行驶证照片URL',
    `photo_size` INT COMMENT '照片大小（字节）',

    -- OCR 信息
    `ocr_provider` VARCHAR(50) COMMENT 'OCR厂商',
    `ocr_cost_time` INT COMMENT 'OCR识别耗时（毫秒）',
    `ocr_raw_result` TEXT COMMENT 'OCR原始结果（JSON）',

    -- 状态信息
    `status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态（0-待确认 1-已确认 2-已作废）',
    `remark` VARCHAR(500) COMMENT '备注',

    -- 审计字段
    `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_plate` (`vehicle_id`, `plate_no`, `deleted`),
    INDEX `idx_vin` (`vin`),
    INDEX `idx_plate_no` (`plate_no`),
    INDEX `idx_plate_date` (`plate_date`),
    INDEX `idx_status` (`status`),
    INDEX `idx_create_time` (`create_time`),
    INDEX `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆上牌记录表';

-- 菜单 SQL
INSERT INTO system_menu(
    name, permission, type, sort, parent_id,
    path, icon, component, status, component_name
)
VALUES (
    '上牌管理', '', 2, 3, (SELECT id FROM system_menu WHERE name = '车辆管理' LIMIT 1),
    'registration', 'form', 'asset/vehicle/registration/index', 0, 'VehicleRegistration'
);

-- 获取刚插入的菜单ID
SET @menuId = LAST_INSERT_ID();

-- 上牌管理按钮权限
INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status)
VALUES
    ('上牌记录查询', 'asset:vehicle-registration:query', 3, 1, @menuId, '', '', '', 0),
    ('上牌记录创建', 'asset:vehicle-registration:create', 3, 2, @menuId, '', '', '', 0),
    ('上牌记录更新', 'asset:vehicle-registration:update', 3, 3, @menuId, '', '', '', 0),
    ('上牌记录删除', 'asset:vehicle-registration:delete', 3, 4, @menuId, '', '', '', 0),
    ('行驶证识别', 'asset:vehicle-registration:recognize', 3, 5, @menuId, '', '', '', 0);
