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


import com.bohuikeji.frame.module.admin.base.HtmlBlockFormBase;
import com.bohuikeji.frame.module.admin.entity.web.block.InputBlock;
import com.bohuikeji.frame.module.admin.enums.ColumnWayEnum;

import java.lang.annotation.*;

@Target({ElementType.FIELD,ElementType.ANNOTATION_TYPE})
@Inherited
@Documented
@Retention(RetentionPolicy.RUNTIME)
/**
 * 表格实体新增和编辑注解
 * 用于控制数据表格数据新增和修改
 * @author 10552
 */
public @interface TableNewField {
    /**
     * 是否显示
     * @return
     */
    boolean show() default true;

    /**
     * 是否可编辑
     * @return
     */
    boolean edit() default true;

    /**
     * 是否可新增
     * @return
     */
    boolean add() default  true;

    /**
     * 输入限制正则表达式(只对input有效)
      * @return
     */
    String limit() default "";


    /**
     * 默认值生值成方式
     * @return
     */
    ColumnWayEnum way() default ColumnWayEnum.DEFAULT;

    /**
     * 默认值，优先级低于way
     * 如指定了way=AUTO_KEY,则该属性作为AUTO_KEY的查询建
     * @return
     */
    String value() default "";

    /**
     * 要创建的表单元素块
     * @return
     */
    Class<? extends HtmlBlockFormBase> block() default InputBlock.class;

    /**
     * 下拉的预置选项，适用于固定的已知下拉项
     * 如设置该项，则不对外键进行处理
     * @return
     */
    String[] options() default {};

    /**
     * 【临时属性】
     * 前缀
     */
    String pix() default "";

    /**
     * 是否必填
     * @return
     */
    boolean required()default true;

}
