package com.hotwj.platform.noticeManagerment.signFileDetail.domain.vo;

import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.hotwj.platform.noticeManagerment.signFileDetail.domain.HotSignFileDetail;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;

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


/**
 * 签订文件明细视图对象 hot_sign_file_detail
 *
 * @author shihongwei
 * @date 2026-01-14
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HotSignFileDetail.class)
public class HotSignFileDetailVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

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

    private String taskId;

    /**
     * 公司ID
     */
    @ExcelIgnore
    private Long companyId;

    /**
     * 文件ID
     */
    @ExcelIgnore
    private Long issueFileId;

    @ExcelIgnore
    private String fileName;

    @ExcelIgnore
    private String content;

    /**
     * 人员ID
     */
    @ExcelIgnore
    private String staffId;

    /**
     * 人员名称
     */
    @ExcelProperty(value = "姓名", index = 0)
    private String staffName;

    /**
     * 人员类型
     */
    @ExcelProperty(value = "人员类型", index = 1, converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "hot_training_person_type")
    private Long staffType;

    /**
     * 签订时间
     */
    @ExcelIgnore
    private Date signTime;

    /**
     * 是否签订 0=否 1=是
     */
    @ExcelIgnore
    private Long signStatus;

    /**
     * 到期时间
     */
    @ExcelIgnore
    private Date expireTime;

    /**
     * 是否归档 0=否 1=是
     */
    @ExcelProperty(value = "是否归档", index = 5, converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=已归档,0=否")
    private Long isArchived;

    /**
     * 0=正常, 1=已删除
     */
    @ExcelIgnore
    private Long isDeleted;

    /**
     * 创建人显示名称
     */
    @ExcelIgnore
    private String createByName;

    /**
     * 最后修改人显示名称
     */
    @ExcelIgnore
    private String updateByName;

    /**
     * 签名ossId
     */
    @ExcelIgnore
    private String signOssId;

    @ExcelIgnore
    private Date createTime;

    @ExcelProperty(value = "签订时间", index = 2)
    private String signTimeStr;

    @ExcelProperty(value = "到期时间", index = 3)
    private String expireTimeStr;

    @ExcelProperty(value = "创建时间", index = 4)
    private String createTimeStr;

}
