package com.gci.boot.annotation.Query;

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

/**
 * 用于构建查询
 * @author 24642
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SelectQuery {

    /**
     * 属性名
     */
    String PropName() default "";


    /**
     * 查询类型
     */
    SelectType Type() default SelectType.LIKE;

    enum SelectType {
        /**
         * 等于
         */
        EQ,
        /**
         * 不等于
         */
        NE,
        /**
         * 大于
         */
        GT,
        /**
         * 大于等于
         */
        GE,
        /**
         * 小于
         */
        LT,
        /**
         * 小于等于
         */
        LE,
        /**
         * 列表中
         */
        IN,
        /**
         * 列表外
         */
        NOT_IN,
        /**
         * 区间内
         */
        BETWEEN,
        /**
         * 区间外
         */
        NOT_BETWEEN,
        /**
         * 模糊查询
         */
        LIKE,
        /**
         * 左模糊查询
         */
        LIKE_LEFT,
        /**
         * 右模糊查询
         */
        LIKE_RIGHT
    }
}
