package com.brframework.commoncms.annatotion.option;

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/26 17:41
 */
@Target({ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface CmsOption {

    /**
     * 条件表达式
     * {id}==10 and {money}>=10
     *
     * @return
     */
    String condition() default "";

    /**
     * 操作名称
     */
    String name();

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

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

    /**
     * 提示信息
     */
    String alert() default "";

    /**
     * 设置按钮的颜色
     */
    String color() default "";

    /**
     * 权限的映射方法
     * 注意不能与role&roleName存在，如果同时存在将优先使用roleMappingMethod
     * 映射的方法是不支持重载的，所以方法名在类里一定要保持唯一
     */
    String roleMappingMethod() default "";

    /**
     * 权限
     * 当前操作所需具备的权限
     */
    String role() default "";

    /**
     * 权限名称
     */
    String roleName() default "";

}
