package com.ylx.attendanceconfig.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 考勤扣款区间规则表
 */
@Data
@ApiModel("考勤扣款区间规则表")
@TableName("attendance_deduction_rule")
public class AttendanceDeductionRule implements Serializable {
    private static final long serialVersionUID = -3851089045114907220L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 考勤规则ID，关联attendance_rule.id
     */
    @ApiModelProperty("考勤规则ID，关联attendance_rule.id")
    @TableField("rule_id")
    private Long ruleId;

    /**
     * 规则类型：1=早退时长扣款
     */
    @ApiModelProperty("规则类型：1=早退时长扣款")
    @TableField("rule_type")
    private Integer ruleType;

    /**
     * 开始分钟数，包含该值
     */
    @ApiModelProperty("开始分钟数，包含该值")
    @TableField("start_minutes")
    private Integer startMinutes;

    /**
     * 结束分钟数，包含该值
     */
    @ApiModelProperty("结束分钟数，包含该值")
    @TableField("end_minutes")
    private Integer endMinutes;

    /**
     * 扣款金额，单位：元
     */
    @ApiModelProperty("扣款金额，单位：元")
    @TableField("deduct_amount")
    private BigDecimal deductAmount;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    @TableField("sort_order")
    private Integer sortOrder;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 是否删除：0=否，1=是
     */
    @ApiModelProperty("是否删除：0=否，1=是")
    @TableField("is_delete")
    @TableLogic
    private Integer isDelete;
}
