package jnpf.entity.attendance;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
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.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 加班规则明细表 
 * @author yanwenfu 
 * @create 2025-09-17 
 */

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

	private static final long serialVersionUID =  4158553649730184629L;

	/** 规则ID */
   	@TableField(value = "F_RuleId")
	private String ruleId;

	/** 加班类型: 1=工作日, 2=公休日, 3=节假日 */
   	@TableField(value = "F_OvertimeType")
	private Integer overtimeType;

	/** 该类型是否启用: 0=停用, 1=启用 */
   	@TableField(value = "F_Enabled")
	private Integer enabled;

	/** 时长单位: 1=小时, 2=半天, 3=天 */
   	@TableField(value = "F_TimeUnit")
	private Integer timeUnit;

	/** 计算方式: 1=按审批申请时长, 2=按审批时段打卡时长, 3=无需审批按打卡时长 */
   	@TableField(value = "F_CalcMethod")
	private Integer calcMethod;

	/** 加班存休: 1=根据加班时长, 2=不结算存休(仅记录/结算薪酬) */
   	@TableField(value = "F_CompensateType")
	private Integer compensateType;

	/** 时长换算存休倍数 */
   	@TableField(value = "F_CompensateRatio")
	private BigDecimal compensateRatio;

	/** 最小加班时间 */
   	@TableField(value = "F_MinOvertimeMinute", updateStrategy = FieldStrategy.IGNORED)
	private Integer minOvertimeMinute;
}
