package jnpf.model.attendance.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * <p>
 * 考勤基础设置表
 * </p>
 *
 * @author ahua
 * @since 2023-11-29
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AttendanceBaseSettingVo implements Serializable {

    private static final long serialVersionUID = 1L;

    private String id;
    /**
     * 考勤组id
     */
    private String groupId;

    /**
     * 出勤换算比(n小时换算为一天)
     */
    private BigDecimal attendanceRatio;

    /**
     * 内勤是否需要拍照 1:是, 0: 否)
     */
    private Integer attendancePhoto;

    /**
     * 是否需要人脸识别 1：是 ， 0：否
     */
    private Integer face;

    /**
     * 是否允许晚走晚到(0-否  1-是)
     */
    private Integer lateEarly;

    /**
     * 晚走分钟数
     */
    private Integer lateMinis;

    /**
     * 晚到分钟数
     */
    private Integer earlyMinis;

    /**
     * 出勤换算比是否展示(1是 0否)
     */
    private boolean attendanceRatioType = false;

    /**
     * 加班是否发放余额(1不发 2天发 3小时发)
     */
    private Integer overtimeGrantType;

    /**
     * 加班换算比(n小时换算为一天)
     */
    private BigDecimal overtimeRatio;

    /**
     * 是否允许外勤打卡(1是 0否)
     */
    private Integer fieldClockStatus;

    /**
     * 外勤是否需要审批(1: 是, 0: 否)
     */
    private Integer approveEnable;

    /**
     * 外勤是否需要拍照 1:是(默认), 0: 否)
     */
    private Integer shouldTakePhoto;

    /**
     * 外勤人员ids
     */
    private List<AttendanceGroupUserVo> fieldPersonnellist;

    /**
     * 外勤人员选择类型：1.全部 2.指定人员（ftb_attendance_field_personnel表）
     */
    private Integer filePersonnelType;

    /**
     * 是否允许补卡(1是 0否)
     */
    private Integer patchClockStatus;

    /**
     * 每月可以提交补卡次数
     */
    private Integer patchClockNumber;

    /**
     * 补卡次数刷新日
     */
    private Integer patchRefreshDay;

    /**
     * 补卡周期天数
     */
    private Integer patchCycleDay;

    /**
     * 补卡类型(1: 迟到, 2: 早退, 3: 缺卡, 4: 旷工) 例：1,2,3
     */
    private String patchType;

    /**
     * 未排班是否可选择班次(0不可选 1可选)
     */
    private Integer selectRuleEnable;

    /**
     * 调整出勤是否需要审批(0不需要审批 1需要审批)
     */
    private Integer modifyClockApplyEnable;
}
