package cn.novalon.manage.common.dao;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 查询字段注解
 * 
 * @author 张翔
 * @date 2026-03-13
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface QueryField {

    String propName() default "";

    String blurry() default "";

    Type type() default Type.EQUAL;

    Type orPropVal() default Type.EQUAL;

    String[] orPropNames() default {};

    enum Type {
        EQUAL,
        GREATER_THAN,
        LESS_THAN,
        LESS_THAN_NQ,
        INNER_LIKE,
        LEFT_LIKE,
        NOT_LEFT_LIKE,
        RIGHT_LIKE,
        IN,
        OR,
        IS_NULL,
        IS_NOT_NULL
    }
}
