package org.dromara.project.domain.vo.reissuecard;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
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.project.domain.BusReissueCard;

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


/**
 * 施工人员补卡申请视图对象 bus_reissue_card
 *
 * @author lcj
 * @date 2025-04-08
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusReissueCard.class)
public class BusReissueCardVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 申请人id
     */
    private Long userId;

    /**
     * 申请人名字
     */
    @ExcelProperty(value = "申请人名字")
    private String userName;

    /**
     * 申请补卡说明
     */
    @ExcelProperty(value = "申请补卡说明")
    private String userExplain;

    /**
     * 补卡申请时间
     */
    @ExcelProperty(value = "补卡申请时间")
    private Date userTime;

    /**
     * 项目id
     */
    private Long teamId;

    /**
     * 项目名字
     */
    private String teamName;

    /**
     * 项目id
     */
    private Long projectId;

    /**
     * 班组长id
     */
    private Long gangerId;

    /**
     * 班组长名字
     */
    @ExcelProperty(value = "班组长名字")
    private String gangerName;

    /**
     * 班组长意见（1未读 2同意 3拒绝）
     */
    @ExcelProperty(value = "班组长意见", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "user_opinion_type")
    private String gangerOpinion;

    /**
     * 班组长说明
     */
    @ExcelProperty(value = "班组长说明")
    private String gangerExplain;

    /**
     * 班组长操作时间
     */
    @ExcelProperty(value = "班组长操作时间")
    private Date gangerTime;

    /**
     * 管理员id
     */
    private Long managerId;

    /**
     * 管理员名字
     */
    private String managerName;

    /**
     * 管理员意见（1未读 2同意 3拒绝）
     */
    @ExcelProperty(value = "管理员意见", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "user_opinion_type")
    private String managerOpinion;

    /**
     * 管理员说明
     */
    @ExcelProperty(value = "管理员说明")
    private String managerExplain;

    /**
     * 管理员操作时间
     */
    @ExcelProperty(value = "管理员操作时间")
    private Date managerTime;

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

    /**
     * 状态
     */
    private String status;

}
