package com.cpop.core.base.enums;

import lombok.Getter;

/**
 * @author DB
 * @Description:
 * @create: 2023-08-26 18:52
 */
@Getter
public enum OperationLogEnum {
    /**
     * 系统登录
     */
    SYSTEM_LOGIN(0, "i18n_operationLog_systemLogin", "SystemLoginModel", 6, 4),
    /**
     * 系统用户退出登录
     */
    SYSTEM_LOGOUT(1, "i18n_operationLog_systemLogout", "SystemLoginModel", 6, 4),
    /**
     * 更新系统配置
     */
    UPDATE_OAM_CONFIG(2, "i18n_operationLog_systemLogout", "SystemLoginModel", 5, 3),
    //10-15 OAM菜单管理
    /**
     * 新增OAM菜单
     */
    INSERT_OAM_MENU(10, "i18n_operationLog_insertOamMenu", "OamMenuModel", 5, 3),
    /**
     * 修改OAM菜单
     */
    UPDATE_OAM_MENU(11, "i18n_operationLog_updateOamMenu", "OamMenuModel", 4, 3),
    /**
     * 删除OAM菜单
     */
    REMOVE_OAM_MENU(12, "i18n_operationLog_removeOamMenu", "OamMenuModel", 4, 2),
    //16-20 角色管理
    /**
     * 新增系统角色
     */
    INSERT_OAM_ROLE(16, "i18n_operationLog_insertOamRole", "OamRoleModel", 5, 3),
    /**
     * 修改系统角色
     */
    UPDATE_OAM_ROLE(17, "i18n_operationLog_updateOamRole", "OamRoleModel", 4, 3),
    /**
     * 删除系统角色
     */
    REMOVE_OAM_ROLE(18, "i18n_operationLog_removeOamRole", "OamRoleModel", 4, 2),
    //21-25 部门管理
    /**
     * 新增系统部门
     */
    INSERT_OAM_DEPT(21, "i18n_operationLog_insertOamDept", "OamDeptModel", 5, 3),
    /**
     * 修改系统部门
     */
    UPDATE_OAM_DEPT(22, "i18n_operationLog_updateOamDept", "OamDeptModel", 4, 3),
    /**
     * 删除系统部门
     */
    REMOVE_OAM_DEPT(23, "i18n_operationLog_removeOamDept", "OamDeptModel", 4, 2),
    //26-30 系统员工管理
    /**
     * 新增员工
     */
    INSERT_OAM_STAFF(26, "i18n_operationLog_insertOamStaff", "OamStaffModel", 6, 4),
    /**
     * 修改系统用户
     */
    UPDATE_OAM_STAFF(27, "i18n_operationLog_updateOamStaff", "OamStaffModel", 6, 4),
    /**
     * 删除系统用户
     */
    REMOVE_OAM_STAFF(28, "i18n_operationLog_removeOamStaff", "OamStaffModel", 5, 3),
    /**
     * 修改系统用户密码
     */
    MODIFY_OAM_STAFF_PASSWORD(29, "i18n_operationLog_updateOamStaffPassword", "OamStaffModel", 6, 4),
    ;

    /**
     * 操作码
     */
    private final Integer code;
    /**
     * 操作信息
     */
    private final String info;
    /**
     * 操作模块
     */
    private final String operationModel;

    /**
     * 7-调试，6-信息，5-通知，4-警告,3-错误，2-关键，1-报警,0-紧急
     * 成功行为等级
     */
    private final Integer successLevel;

    /**
     * 7-调试，6-信息，5-通知，4-警告,3-错误，2-关键，1-报警,0-紧急
     * 异常行为等级
     */
    private final Integer exceptionLevel;

    OperationLogEnum(Integer code, String info, String operationModel, Integer successLevel, Integer exceptionLevel) {
        this.code = code;
        this.info = info;
        this.operationModel = operationModel;
        this.successLevel = successLevel;
        this.exceptionLevel = exceptionLevel;
    }

}
