package com.hotwj.platform.driverManagement.driverHealthReport.domain.vo;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.hotwj.platform.driverManagement.driverHealthReport.domain.HotDriverHealthReport;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;

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


/**
 * 驾驶员体检报告视图对象 hot_driver_health_report
 *
 * @author shihongwei
 * @date 2025-12-15
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HotDriverHealthReport.class)
public class HotDriverHealthReportVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long id;

    /**
     * 公司ID
     */
    @ExcelProperty(value = "公司ID")
    private Long companyId;

    /**
     * 驾驶员ID
     */
    @ExcelProperty(value = "驾驶员ID")
    private String driverId;

    /**
     * 体检报告日期
     */
    @ExcelProperty(value = "体检报告日期")
    private Date reportDate;

    /**
     * 医院
     */
    @ExcelProperty(value = "医院")
    private String hospital;

    /**
     * 体检结果（字典）
     */
    @ExcelProperty(value = "体检结果", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "字=典")
    private String healthStatus;

    /**
     * 记录人
     */
    @ExcelProperty(value = "记录人")
    private Long recorderId;

    @Translation(type = TransConstant.SAFETY_MANAGER_ID_TO_NAME, mapper = "recorderId")
    private String recorderName;

    /**
     * 体检报告附件URL
     */
    @ExcelProperty(value = "体检报告附件URL")
    private String attachmentUrl;

    /**
     * 预览图URL
     */
    @ExcelProperty(value = "预览图URL")
    private String previewImageUrl;

    /**
     * 备注/内部编号
     */
    @ExcelProperty(value = "备注/内部编号")
    private String remark;

    /**
     * 是否归档 (0=未归档, 1=已归档)
     */
    @ExcelProperty(value = "是否归档", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=未归档,1=已归档")
    private Integer archiveStatus;

    /**
     * 0=正常, 1=已删除
     */
    @ExcelProperty(value = "0=正常, 1=已删除")
    private Long isDeleted;


}
