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_rule")
public class AttendanceRule implements Serializable {
    private static final long serialVersionUID = 2048164226986084497L;

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

    /**
     * 规则名称
     */
    @ApiModelProperty("规则名称")
    @TableField("rule_name")
    private String ruleName;

    /**
     * 商户ID，为空表示平台默认规则
     */
    /*@ApiModelProperty("商户ID，为空表示平台默认规则")
    @TableField("merchant_id")
    private String merchantId;*/

    /**
     * 基本工作时长，单位：小时
     */
    @ApiModelProperty("基本工作时长，单位：小时")
    @TableField("basic_work_hours")
    private BigDecimal basicWorkHours;

    /**
     * 是否启用工作时长规则：0=无，1=有
     */
    @ApiModelProperty("是否启用工作时长规则：0=无，1=有")
    @TableField("work_duration_rule_enabled")
    private Integer workDurationRuleEnabled;

    /**
     * 状态：0=停用，1=启用
     */
    @ApiModelProperty("状态：0=停用，1=启用")
    @TableField("status")
    private Integer status;

    /**
     * 创建人
     */
    @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;
}
