package org.dromara.project.domain.vo;

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.BusConstructionUser;

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


/**
 * 施工人员视图对象 bus_construction_user
 *
 * @author lcj
 * @date 2025-03-07
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusConstructionUser.class)
public class BusConstructionUserVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

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

    /**
     * 微信id
     */
    @ExcelProperty(value = "微信id")
    private String openid;

    /**
     * 微信名称
     */
    @ExcelProperty(value = "微信名称")
    private String nickName;

    /**
     * 人脸照
     */
    @ExcelProperty(value = "人脸照")
    private String facePic;

    /**
     * 人脸照 url
     */
    @ExcelProperty(value = "人脸照 url")
    private String facePicUrl;

    /**
     * 人员姓名
     */
    @ExcelProperty(value = "人员姓名")
    private String userName;

    /**
     * 项目id
     */
    @ExcelProperty(value = "项目id")
    private Long projectId;

    /**
     * 分包公司id
     */
    @ExcelProperty(value = "分包公司id")
    private Long contractorId;

    /**
     * 分包公司
     */
    @ExcelProperty(value = "分包公司")
    private BusContractorVo contractorVo;

    /**
     * 班组id
     */
    @ExcelProperty(value = "班组id")
    private Long teamId;

    /**
     * 班组
     */
    @ExcelProperty(value = "班组")
    private BusProjectTeamVo teamVo;

    /**
     * 状态（0在职 1离职）
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=在职,1=离职")
    private String status;

    /**
     * 是否代打
     */
    @ExcelProperty(value = "是否代打")
    private Long isPinch;

    /**
     * 联系电话
     */
    @ExcelProperty(value = "联系电话")
    private String phone;

    /**
     * 0:保密 1:男 2女
     */
    @ExcelProperty(value = "0:保密 1:男 2女")
    private Long sex;

    /**
     * 民族
     */
    @ExcelProperty(value = "民族")
    private String nation;

    /**
     * 身份证正面图片
     */
    @ExcelProperty(value = "身份证正面图片")
    private String sfzFrontPic;

    /**
     * 身份证反面图片
     */
    @ExcelProperty(value = "身份证反面图片")
    private String sfzBackPic;

    /**
     * 身份证号码
     */
    @ExcelProperty(value = "身份证号码")
    private String sfzNumber;

    /**
     * 身份证有效开始期
     */
    @ExcelProperty(value = "身份证有效开始期")
    private String sfzStart;

    /**
     * 身份证有效结束期
     */
    @ExcelProperty(value = "身份证有效结束期")
    private String sfzEnd;

    /**
     * 身份证地址
     */
    @ExcelProperty(value = "身份证地址")
    private String sfzSite;

    /**
     * 身份证出生日期
     */
    @ExcelProperty(value = "身份证出生日期")
    private String sfzBirth;

    /**
     * 籍贯
     */
    @ExcelProperty(value = "籍贯")
    private String nativePlace;

    /**
     * 银行卡图片
     */
    @ExcelProperty(value = "银行卡图片")
    private String yhkPic;

    /**
     * 银行卡号
     */
    @ExcelProperty(value = "银行卡号")
    private String yhkNumber;

    /**
     * 开户行
     */
    @ExcelProperty(value = "开户行")
    private String yhkOpeningBank;

    /**
     * 持卡人
     */
    @ExcelProperty(value = "持卡人")
    private String yhkCardholder;

    /**
     * 工种
     */
    @ExcelProperty(value = "工种", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "type_of_work")
    private String typeOfWork;

    /**
     * 特种工作证图片
     */
    @ExcelProperty(value = "特种工作证图片")
    private String specialWorkPic;

    /**
     * 打卡(0启用打卡 1禁止打卡)
     */
    @ExcelProperty(value = "打卡(0启用打卡 1禁止打卡)")
    private String clock;

    /**
     * 入场时间
     */
    @ExcelProperty(value = "入场时间")
    private String entryDate;

    /**
     * 离场时间
     */
    @ExcelProperty(value = "离场时间")
    private String leaveDate;

    /**
     * 薪水
     */
    @ExcelProperty(value = "薪水")
    private Long salary;

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

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

}
