package com.ylx.attendanceconfig.domain.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

@Data
@ApiModel("考勤规则新增DTO")
public class AttendanceRuleAddDTO implements Serializable {
    private static final long serialVersionUID = 1163485126326629827L;

    @ApiModelProperty("规则名称，不传默认：默认考勤规则")
    private String ruleName;

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

    @NotNull(message = "基本工作时长不能为空")
    @DecimalMin(value = "0.01", message = "基本工作时长必须大于0")
    @ApiModelProperty(value = "基本工作时长，单位：小时", required = true)
    private BigDecimal basicWorkHours;

    /**
     * 是否启用工作时长规则：0=无，1=有
     */
    @NotNull(message = "工作时长规则不能为空")
    @ApiModelProperty(value = "是否启用工作时长规则：0=无，1=有", required = true)
    private Integer workDurationRuleEnabled;

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

    /**
     * 扣款区间规则集合
     */
    @Valid
    @ApiModelProperty("扣款区间规则集合")
    private List<AttendanceDeductionRuleDTO> deductionRules;
}
