package jnpf.model.attendance.vo.attendance;

import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * @Author huanglinpan
 * @Date 2024/8/12 11:05
 * @Version 1.0 （版本号）
 */
@Data
@NoArgsConstructor
public class ApproveBaseImVo implements Serializable {

    private static final long serialVersionUID = 291111107712082630L;

    /** 日期 */
    private String day;
    /** 选择日期 */
    private Date selectTime;
    /** 开始时间 */
    private Date startTime;
    /** 结束时间 */
    private Date endTime;
    /** 发起时间 */
    private Date createTime;
    /** 之前的结果 */
    private String afterResult;
    /** 结果 */
    private String result;
    /** 地址 */
    private String address;
    /** 发起人、操作人 */
    private String createUserName;
    private String createUserId;
    /** 被借调考勤组（出人的组） */
    private String groupName;
    /** 借调考勤组（进人的组） */
    private String secondedGroupName;
    /**  被借调的人员 张三、李四、王五*/
    private String secondedUsersName;
    /**  离岗时间 */
    private Date departureTime;
    /** 回岗时间 */
    private Date backTime;
    /** 请假类型 */
    private String leaveType;
    /** 时长 转换好后的 列 2天、1.23天 */
    private String duration;
    /** 出发地 */
    private String departure;
    /** 目的地 */
    private String destination;
    /** 必传 审批类型 参考：ApprovalSettingTypeEnum */
    private Integer type;
    /** 租户Id */
    private String tenantId;
    /** 标题 */
    private String title;
    /** 出勤规则时间 */
    private String ruleTime;

    /** 必传 需要跳转的链接加参数 */
    private String url;
    /**考勤V1.7新增*/
    /** 单位 :  1 :小时 2: 天  3:半天 */
    private Integer unit;
    /**当请假类型为天时开始时间选择的班次信息 同ftb_attendance_shift_setting_period表F_Type类型：1 上半天 2 下半天 （半天制班次使用）当请假类型单位为半天时生效 */
    private Integer startTimeType;
    /**当请假类型为天时结束时间选择的班次信息 同ftb_attendance_shift_setting_period表F_Type类型：1 上半天 2 下半天 （半天制班次使用）当请假类型单位为半天时生效 */
    private Integer endTimeType;

    public ApproveBaseImVo(String title, Integer type, Date createTime, String address) {
        this.title = title;
        this.type = type;
        this.createTime = createTime;
        this.address = address;
    }

    public ApproveBaseImVo(String title, Integer type, String ruleTime, String result) {
        this.title = title;
        this.type = type;
        this.ruleTime = ruleTime;
        this.result = result;
    }

    public ApproveBaseImVo(String title, Integer type, String secondedUsersName, String ruleTime, String afterResult, String result) {
        this.title = title;
        this.type = type;
        this.secondedUsersName = secondedUsersName;
        this.ruleTime = ruleTime;
        this.afterResult = afterResult;
        this.result = result;
    }
}
