package com.jeequan.jeepay.model;

import cn.hutool.core.lang.Assert;
import lombok.Data;

import java.util.List;

/**
 * TODO
 * @author crystal
 * @date 2024/4/19 14:18
 */
@Data
public class RuleStrategy {

    /**
     * 规则条件
     */
    private List<Condition> conditionList;


    public void preCheck() {
        Assert.notNull(this.getConditionList(),"路由规则内容不能为空");
        this.getConditionList().forEach(item -> {
            Assert.notNull(item.getTimeVal(),"时间条件不能为空");
            Assert.notEmpty(item.getType(),"成交类型不能为空");
            Assert.notNull(item.getCondition(),"区间范围条件不能为空");
            Assert.notEmpty(item.getValue(),"条件值不能为空");
            Assert.notEmpty(item.getOpType(),"操作类型不能为空");
            Assert.notEmpty(item.getMethod(),"操作方式不能为空");
            if(!Operate.STORE_STATE.equals(item.getOpType())){
                Assert.notEmpty(item.getOptValue(),"操作值不能为空");
            }
        });
    }
}
