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

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.hotwj.platform.driverManagement.driverRewardPunishment.domain.HotDriverRewardPunishment;
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_reward_punishment
 *
 * @author shihongwei
 * @date 2025-12-16
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HotDriverRewardPunishment.class)
public class HotDriverRewardPunishmentVo 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;

    /**
     * 驾驶员姓名
     */
    private String driverName;

    /**
     * 奖惩类型：1=奖励 2=处分
     */
    @ExcelProperty(value = "奖惩类型：1=奖励 2=处分")
    private Long recordType;

    /**
     * 奖惩日期
     */
    @ExcelProperty(value = "奖惩日期")
    private Date eventDate;

    /**
     * 奖惩类别（字典/下拉）
     */
    @ExcelProperty(value = "奖惩类别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "字=典/下拉")
    private String category;

    /**
     * 奖惩原因/事由
     */
    @ExcelProperty(value = "奖惩原因/事由")
    private String reason;

    /**
     * 奖惩决定/处理意见
     */
    @ExcelProperty(value = "奖惩决定/处理意见")
    private String decision;

    /**
     * 附件URL（图片/PDF）
     */
    @ExcelProperty(value = "附件URL", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "图=片/PDF")
    private String attachmentUrl;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 详细内容/说明
     */
    @ExcelProperty(value = "详细内容/说明")
    private String content;

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

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

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


}
