package me.qwq.doghouse.annotation;

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

/**
 * 将该注解用在配置上，给后台 ConfigController 自动渲染配置页用
 * @author Doghole
 *
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface ConfigInfo {
    /**
     * @return 存储在数据库中的配置键名
     */
    String field();
    /**
     * @return 名称
     */
    String name() default "配置";
    /**
     * <p>为 true 时，最终会调用其无参构造方法，若需要填充默认值的，请在无参构造器中填充</p>
     * @return 是否初始化默认值
     */
    boolean initDefault() default false;
    /**
     * @return 是否提供后台控制
     */
    boolean managed() default true;
}
