package com.bonus.common.log.annotation;

import com.bonus.common.log.enums.OperaType;
import com.bonus.common.log.enums.OperatorType;

import java.lang.annotation.*;

/**
 * 自定义操作日志记录注解
 * 
 * @author bonus
 *
 */
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SysLog
{
    /**
     * 模块
     */
    public String title() default "";

    /**
     * 业务类型  默认 0 系统日志   1 业务日志  2 异常日志
     * @return
     */
    public int  logType()  default 1;

    /**
     * 操作模块
     * @return
     */
    public String module();
    /**
     * 功能 ->新增、修改、删除
     */
    public String businessType() default OperaType.OTHER;

    public String details() default "";

    /**
     * 操作人类别
     */
    public OperatorType operatorType() default OperatorType.MANAGE;

    /**
     * 是否保存请求的参数
     */
    public boolean isSaveRequestData() default true;

    /**
     * 是否保存响应的参数
     */
    public boolean isSaveResponseData() default true;

    /**
     * 排除指定的请求参数
     */
    public String[] excludeParamNames() default {};

    /**
     * 操作类型
     *
     * @return
     */
    String grade() default OperaType.QUERY;

    /**
     * 日志类型
     */
    String type() default "业务日志";

}
