package jnpf.entity.workflow;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * describe
 *
 * @author HuangLinPan
 * @date 2023/12/11
 */
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName( value ="ftb_attendance_leave_approve" )
public class AttendanceLeaveApprove extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {

    private static final long serialVersionUID =  8981456888398341111L;

    /**
     * 请假人
     */
    @TableField(value = "F_User_Id")
    private String userId;

    /** 岗位id */
    @TableField(value = "F_PostId")
    private String postId;

    /** 请假类型id */
    @TableField(value = "F_Type_Id")
    private String typeId;

    /**
     * 配置的请假类型(事假/调休...)
     */
    @TableField(value = "F_Type")
    private String type;

    /** 单位 :  1 :小时 2: 天 (暂定只有天的劵) */
    @TableField(value = "F_Unit")
    private Integer unit;

    /**
     * 开始时间
     */
    @TableField(value = "F_StartTime")
    private Date startTime;

    /**
     * 结束时间
     */
    @TableField(value = "F_EndTime")
    private Date endTime;

    /**当请假类型为天时开始时间选择的班次信息 同ftb_attendance_shift_setting_period表F_Type类型：1 上半天 2 下半天 （半天制班次使用）当请假类型单位为半天时生效 */
    @TableField(value = "F_StartTimeType")
    private Integer startTimeType;

    /** 请假开始时间 命中的时间 */
    @TableField(value = "F_StartTimeHit")
    private Date startTimeHit;

    /**当请假类型为天时结束时间选择的班次信息 同ftb_attendance_shift_setting_period表F_Type类型：1 上半天 2 下半天 （半天制班次使用）当请假类型单位为半天时生效 */
    @TableField(value = "F_EndTimeType")
    private Integer endTimeType;

    /** 请假结束时间 命中的时间 */
    @TableField(value = "F_EndTimeHit")
    private Date endTimeHit;

    /**
     * 请假时长秒
     */
    @TableField(value = "F_ApplicationDuration")
    private BigDecimal applicationduration;
    /**
     * 未抵扣时长秒
     */
    @TableField(value = "F_UndeductedTimeSecond")
    private BigDecimal undeductedTimeSecond;

    /**
     * 请假时长天（当请假类型为天/半天时生效）
     */
    @TableField(value = "F_ApplicationDurationDay")
    private BigDecimal applicationDurationDay;
    /**
     * 未抵扣时长天（当请假类型为天/半天时生效）
     */
    @TableField(value = "F_UndeductedTimeDay")
    private BigDecimal undeductedTimeDay;

    /**
     * 请假原因
     */
    @TableField(value = "F_ReasonForLeave")
    private String reasonforleave;

    /**
     * 未抵扣时间
     */
    @TableField(value = "F_Undeducted_Time")
    private Integer undeductedTime;

    /**
     * 是否审核通过 0.待审核  1.通过 2.未通过
     */
    @TableField(value = "F_Status")
    private Integer status;

    /**
     * 是否使用余额抵扣 0 否 1是
     */
    @TableField(value = "F_Balance_Status")
    private Integer balanceStatus;

    /**
     * 是否选中带薪抵扣 0 未选中  1选中
     */
    @TableField(value = "F_Paid")
    private Integer paid;

    /**
     * 是否选中非带薪抵扣  0 未选中  1选中
     */
    @TableField(value = "F_No_Paid")
    private Integer noPaid;

    /**
     * 流程任务主键
     */
    @TableField(value = "f_flowtaskid")
    private String flowtaskid;

    /**
     * 流程id
     */
    @TableField(value = "f_flowid")
    private String flowid;

    /**
     * 唯一id
     */
    @TableField(value = "F_UniqueId")
    private String uniqueid;

    /**
     * 租户ID
     */
    @TableField(value = "F_TenantId")
    private String tenantId;

//    /**
//     * 照片
//     */
//    @TableField(value = "F_Picture")
//    private String picture;

    /**
     * 照片
     */
    @TableField(value = "F_FileJson")
    private String fileJson;

    /** 流程标题 */
    @TableField(value = "F_FlowTitle")
    private String flowTitle;

    /** 申请人员 */
    @TableField(value = "F_ApplyUser")
    private String applyUser;

    /** 申请日期 */
    @TableField(value = "F_ApplyDate")
    private Date applyDate;

    /** 涉及班次JSON */
    @TableField(value = "F_ShiftInvolved")
    private String shiftInvolved;

    /** 余额JSON */
    @TableField(value = "F_BalanceJson")
    private String balanceJson;

    /** 余额JSON */
    @TableField(value = "F_BalanceJsonNew")
    private String balanceJsonNew;

    /** 考勤组id */
    @TableField(value = "F_GroupId")
    private String groupId;
}
