package com.cool.store.request.tp;

import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * <p>
 * 惩处规则更新Request
 * </p>
 *
 * @author wangff
 * @since 2025/11/4
 */
@Data
public class TpPenaltyRuleUpdateRequest {

    @ApiModelProperty("id")
    @NotNull(message = "id不能为空", groups = {UpdateGroup.class})
    private Long id;

    @ApiModelProperty("问题分类")
    @NotBlank(message = "问题分类不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private String problemClassification;

    @ApiModelProperty("项目大类")
    @NotBlank(message = "项目大类不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private String projectCategory;

    @ApiModelProperty("惩处项目名称")
    @NotBlank(message = "惩处项目名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private String projectName;

    @ApiModelProperty("警告上限次数")
    @NotNull(message = "警告上限次数不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private Integer warningLimit;

    @ApiModelProperty("扣分值")
    @NotNull(message = "扣分值不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private BigDecimal score;

    @ApiModelProperty("罚款金额")
    @NotNull(message = "罚款金额不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private BigDecimal amount;

    @ApiModelProperty("复议申请时效")
    @NotNull(message = "复议申请时效不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private Integer appealDeadline;

    @ApiModelProperty("启用状态，0未启用 1启用")
    @NotNull(message = "启用状态不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private Integer status;

    @ApiModelProperty("惩处项目描述")
    @NotBlank(message = "惩处项目描述不能为空", groups = {InsertGroup.class, UpdateGroup.class})
    private String remark;
}
