package com.bohuikeji.frame.module.admin.annotation;

import com.bohuikeji.frame.module.admin.base.HtmlBlockFormBase;
import com.bohuikeji.frame.module.admin.entity.web.block.SelectBlock;

import java.lang.annotation.*;

/**
 * 表格实体查询支持注解
 * 用于配置查询条件
 * @author 10552
 */
@Target({ElementType.FIELD})
@Inherited
@Documented
@Retention(RetentionPolicy.RUNTIME)
@TableNewField(edit = false)
public @interface TableQueryField {
    /**
     * 是否显示查询控件
     * @return
     */
    boolean show() default true;
    /**
     * 是否支持迷糊查询
     * 【注意】该属性与query属性互斥,同时设置可能导致查询操作异常，二选一
     * @return
     */
    boolean like() default true;

    /**
     * 手动设置查询控件类型，默认为自动识别，仅在'query=true',有效
     * @return
     */
    Class<? extends HtmlBlockFormBase> block() default SelectBlock.class;
    /**
     * 界面摆放位置排序，界面从左到右布局对应值从小到大
     * @return
     */
    double sort()  default 1;

    /**
     * 是否不可为空，默认为false，为true情况下创建对象必须赋值
     * @return
     */
    boolean notNull() default false;
}
