package com.brframework.commoncms.annatotion.column;

import com.brframework.commoncms.annatotion.Column;
import com.brframework.commoncms.annatotion.LayoutColumn;
import com.brframework.commoncms.annatotion.option.CmsOption;
import com.brframework.commoncms.core.layout.column.LayoutTextColumn;
import org.springframework.core.annotation.AliasFor;

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

/**
 * 单行文本框
 * @author xu
 * @date 2018/9/27 21:05
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@LayoutColumn(type = LayoutTextColumn.class)
@Column
public @interface TextColumn {

    /**
     * 只读功能,是否为只读: true为只读,false既能读也能写
     *
     * @return
     */
    boolean onlyRead() default false;

    /**
     * 操作uri
     * {PROTOCOL}://{data}
     * REQUEST://POST -d forbidden=1 /admin/access/v1/user/{id}/forbidden
     */
    String uri() default "";

    /**
     * 映射的方法
     * 需要注意的是，映射的方法是不支持重载的，所以方法名在类里一定要保持唯一
     */
    String uriMappingMethod() default "";

    /**
     * 提示信息,在文本框的内容为空的时候的提示信息
     *
     * @return
     */
    String hintText() default "";

    /**
     * 列表展示时，该列是否处于显示状态，可控制列表中，默认隐藏和显示的列
     */
    @AliasFor(annotation = Column.class)
    boolean selectShow() default true;
}
