package com.qmth.paper.library.common.annotation;

import com.qmth.paper.library.common.enums.log.LevelEnum;
import com.qmth.paper.library.common.enums.log.OperationTypeEnum;
import com.qmth.paper.library.common.enums.log.OperationUnitEnum;
import com.qmth.paper.library.common.enums.log.SystemEnum;

import java.lang.annotation.*;

/**
 * @Description: 操作日志注解
 * @Author: CaoZixuan
 * @Date: 2022-02-14
 */
@Documented
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface OperationLogDetail {

    /**
     * 日志记录 - 具体操作的内容（默认为空）
     */
    String detail() default "";

    /**
     * 日志记录 - 日志等级（默认为第四级（普通信息））
     */
    LevelEnum level() default LevelEnum.QUATERNARY;

    /**
     * 日志记录 - 操作类型（主要是 'SELECT,EDIT,DELETE',默认为'未知'）
     */
    OperationTypeEnum operationType() default OperationTypeEnum.UN_KNOW;

    /**
     * 日志记录 - 被操作对象（主要是表，默认为'未知'）
     */
    OperationUnitEnum operationUnit() default OperationUnitEnum.UN_KNOW;

    /**
     * 日志记录 - 被记录日志的系统（默认为'试卷电子化系统日志'）
     */
    SystemEnum system() default SystemEnum.PAPER_LIBRARY;
}
