package com.webchat.domain.vo.request;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;

import java.math.BigDecimal;

/**
 * @author 程序员七七， https://www.coderutil.com网站作者
 * @date 2024/11/9 03:29
 */
@Data
public class SendRedPacketRequestVO {

    @ApiModelProperty("红包发送人")
    private String sendUserId;

    @ApiModelProperty("接收人，可能是人 / 群")
    private String receiverUserId;

    @ApiModelProperty("拼手气、普通红包（平均分配）")
    private Integer type;

    @ApiModelProperty("总金额")
    private BigDecimal totalMoney;

    @ApiModelProperty("一共几个，发给个人只能一次拆一个，发给群聊可以配置多个")
    private Integer count;


    public void validateRequestParam() {
        Assert.isTrue(StringUtils.isNotBlank(receiverUserId), "红包接收人不能为空！");
        Assert.isTrue(type != null, "红包类型不能为空！");
        Assert.isTrue(totalMoney != null &&
                               totalMoney.compareTo(new BigDecimal("200")) <= 0 &&
                               totalMoney.compareTo(new BigDecimal("1")) >= 0, "红包金额控制 1 ~ 200之间！");
        Assert.isTrue(count != null && count > 0, "红包个数至少应该配置1个");
    }
}
