package cn.iocoder.yudao.module.asset.dal.dataobject.vehicleregistration;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 车辆上牌记录 DO
 *
 * @author 芋道源码
 */
@TableName("asset_vehicle_registration")
@KeySequence("asset_vehicle_registration_seq")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class VehicleRegistrationDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;

    /**
     * 车辆ID
     */
    private Long vehicleId;

    /**
     * 车辆识别代号（VIN）
     */
    private String vin;

    /**
     * 车牌号
     */
    private String plateNo;

    /**
     * 上牌日期
     */
    private LocalDate plateDate;

    /**
     * 操作员
     */
    private String operator;

    // ==================== OCR 识别信息 ====================

    /**
     * OCR识别的品牌型号
     */
    private String recognizedBrand;

    /**
     * OCR识别的车型
     */
    private String recognizedModel;

    /**
     * 车辆类型
     */
    private String vehicleType;

    /**
     * 所有人
     */
    private String owner;

    /**
     * 使用性质
     */
    private String useCharacter;

    /**
     * 发动机号码
     */
    private String engineNo;

    /**
     * 注册日期
     */
    private LocalDate registerDate;

    /**
     * 发证日期
     */
    private LocalDate issueDate;

    /**
     * 检验记录
     */
    private String inspectionRecord;

    /**
     * 强制报废期止
     */
    private LocalDate scrapDate;

    /**
     * 整备质量（kg）
     */
    private String curbWeight;

    /**
     * 总质量（kg）
     */
    private String totalMass;

    /**
     * 核定载人数
     */
    private String approvedPassengerCapacity;

    // ==================== 匹配信息 ====================

    /**
     * 匹配的车型ID
     */
    private Long vehicleModelId;

    /**
     * 匹配置信度（0-100）
     */
    private BigDecimal matchConfidence;

    /**
     * 匹配方式（exact/fuzzy/manual）
     */
    private String matchMethod;

    // ==================== 照片信息 ====================

    /**
     * 行驶证照片URL
     */
    private String photoUrl;

    /**
     * 照片大小（字节）
     */
    private Integer photoSize;

    // ==================== OCR 信息 ====================

    /**
     * OCR厂商
     */
    private String ocrProvider;

    /**
     * OCR识别耗时（毫秒）
     */
    private Integer ocrCostTime;

    /**
     * OCR原始结果（JSON）
     */
    private String ocrRawResult;

    // ==================== 状态信息 ====================

    /**
     * 状态（0-待确认 1-已确认 2-已作废）
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

}
