package com.engine.salary.util.valid;

import java.lang.annotation.*;

/**
 * 数据参数合法性注解
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataCheck {

    /**
     * 运行期（区分同一个参数在各个时期是否校验。例如id在更新接口里必填，保存接口不需要）
     *
     * @return
     */
    RuntimeTypeEnum[] runtime() default RuntimeTypeEnum.AUTO;

    /**
     * 是否必填
     *
     * @return
     */
    boolean require() default false;

    /**
     * 参数类型
     *
     * @return
     */
    ValidTypeEnum type() default ValidTypeEnum.STRING;

    /**
     * 日期格式(校验String格式的字符是否为日期格式)
     *
     * @return
     */
    String pattern() default "yyyy-MM-dd";

    /**
     * 最大（String字段验证文本长度，int字段验证大小）
     *
     * @return
     */
    int max() default -1;

    /**
     * 最小（String字段验证文本长度，int字段验证大小）
     *
     * @return
     */
    int min() default -1;

    //错误信息
    int labelId() default -1;

    String message();

}