package jnpf.entity.attendance;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;

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

/**
 * 考勤基础设置表 
 * @author yanwenfu 
 * @create 2023-11-23 
 */

@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_base_setting" )
@Builder
@AllArgsConstructor
public class AttendanceBaseSetting extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {

	private static final long serialVersionUID =  2176483918810305559L;

	/**
	 * 出勤换算比(n小时换算为一天)
	 */
	@TableField(value = "F_AttendanceRatio")
	private BigDecimal attendanceRatio;

	/**
	 * 加班是否发放余额(1不发 2天发 3小时发)
	 */
	@TableField(value = "F_OvertimeGrantType")
	private Integer overtimeGrantType;

	/**
	 * 加班换算比(n小时换算为一天)
	 */
	@TableField(value = "F_OvertimeRatio")
	private BigDecimal overtimeRatio;

	/**
	 * 内勤是否需要拍照 1:是, 0: 否)
	 */
	@TableField(value = "F_AttendancePhoto")
	private Integer attendancePhoto;

	/**
	 * 是否需要人脸识别 1：是 ， 0：否
	 */
	@TableField(value = "F_Face")
	private Integer face;

	/**
	 * 是否允许晚走晚到(0-否  1-是)
	 */
	@TableField(value = "F_LateEarly")
	private Integer lateEarly;

	/**
	 * 晚走分钟数
	 */
	@TableField(value = "F_LateMinis")
	private Integer lateMinis;

	/**
	 * 晚到分钟数
	 */
	@TableField(value = "F_EarlyMinis")
	private Integer earlyMinis;

	/**
	 * 是否允许外勤打卡(1是 0否)
	 */
	@TableField(value = "F_FieldClockStatus")
	private Integer fieldClockStatus;

	/**
	 * 外勤是否需要审批(1: 是, 0: 否)
	 */
	@TableField(value = "F_ApproveEnable")
	private Integer approveEnable;

	/**
	 * 外勤是否需要拍照 1:是(默认), 0: 否)
	 */
	@TableField(value = "F_ShouldTakePhoto")
	private Integer shouldTakePhoto;

	/**
	 * 是否允许补卡(1是 0否)
	 */
	@TableField(value = "F_PatchClockStatus")
	private Integer patchClockStatus;

	/**
	 * 每月可以提交补卡次数
	 */
	@TableField(value = "F_PatchClockNumber")
	private Integer patchClockNumber;

	/**
	 * 补卡次数刷新日
	 */
	@TableField(value = "F_PatchRefreshDay")
	private Integer patchRefreshDay;

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

	/**
	 * 是否启用（0不启用 1启用）
	 */
	@TableField(value = "F_Enable")
	private Integer enable;

	/**
	 * 补卡周期天数
	 */
	@TableField(value = "F_PatchCycleDay")
	private Integer patchCycleDay;

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

	/**
	 * 未排班是否可选择班次(0不可选 1可选)
	 */
	@TableField(value = "F_SelectRuleEnable")
	private Integer selectRuleEnable;

	/**
	 * 调整出勤是否需要审批(0不需要审批 1需要审批 2无法打卡)
	 */
	@TableField(value = "F_ModifyClockApplyEnable")
	private Integer modifyClockApplyEnable;

	/**
	 * 外勤人员选择类型：1.全部 2.指定人员（ftb_attendance_field_personnel表）
	 */
	@TableField(value = "F_FilePersonnelType")
	private Integer filePersonnelType;
}
