package com.digiwin.athenai.reactive.delegate.e10.validator;

import com.digiwin.athenai.reactive.core.ReactiveDataContext;
import com.digiwin.athenai.reactive.delegate.DefaultValidateBase;

import com.digiwin.athenai.reactive.core.ReactiveEntity;
import com.digiwin.athenai.reactive.delegate.FormulaBase;
import com.digiwin.athenai.reactive.util.*;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Collection;
import java.util.List;
import java.util.Arrays;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.regex.Pattern;

/**
 * 校验
 */
public class E10_{TypeKey}_{id} extends DefaultValidateBase {

    @Override
    public String getPath() {
        return "{path}";
    }

    @Override
    public String getSchema() {
        return "{schema}";
    }

    @Override
    public String[] getDependencyItems() {
        return {dependencyItems};
    }

    @Override
    public String[] points() {
        return {points};
    }

    @Override
    {condition}

    /**
     * 执行校验逻辑
     * @param context 上下文，包括当前数据等内容
     * @return true-校验不通过，false-校验通过
     */
    @Override
    {validate}

    /**
     * 获取校验不通过的错误信息
     * @param context 上下文，包括当前数据等内容
     * @return
     */
    @Override
    {errorMessage}

}
