package org.dromara.system.domain.vo;

import org.dromara.system.domain.TblCarInfo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;


/**
 * 车辆信息视图对象 tbl_car_info
 *
 * @author Lion Li
 * @date 2024-02-22
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TblCarInfo.class)
public class TblCarInfoVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @ExcelProperty(value = "编号")
    private Long id;

    /**
     * 车牌号
     */
    @ExcelProperty(value = "车牌号")
    private String carNum;

    /**
     * 车类型（5座、19座）
     */
    @ExcelProperty(value = "车类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "5=座、19座")
    private String carType;

    /**
     * 所有车载设备信息
     */
    @ExcelProperty(value = "所有车载设备信息")
    private String deviceInfos;

    /**
     * 维修信息
     */
    @ExcelProperty(value = "维修信息")
    private String repairInfo;

    /**
     * 保养信息
     */
    @ExcelProperty(value = "保养信息")
    private String maintenanceInfo;

    /**
     * 保险信息
     */
    @ExcelProperty(value = "保险信息")
    private String insuranceInfo;

    /**
     * 年检信息
     */
    @ExcelProperty(value = "年检信息")
    private String inspectionInfo;

    /**
     * 交通事故信息
     */
    @ExcelProperty(value = "交通事故信息")
    private String trafficAccidentInfo;

    /**
     * 违章信息
     */
    @ExcelProperty(value = "违章信息")
    private String violationInfo;

    /**
     * 车辆变更信息
     */
    @ExcelProperty(value = "车辆变更信息")
    private String changeInfo;

    /**
     * 扩展1
     */
    @ExcelProperty(value = "扩展1")
    private String ext1;

    /**
     * 扩展2
     */
    @ExcelProperty(value = "扩展2")
    private String ext2;

    private Object location;
    private Object lastCountTime;

    private Map<String,Object> others;


}
