// Copyright (c) 2018 Jon P Smith, GitHub: JonPSmith, web: http://www.thereformedprogrammer.net/
// Licensed under MIT license. See License.txt in the project root for license information.
using Npgsql.TypeHandlers.NetworkHandlers;
using System.ComponentModel.DataAnnotations;
namespace Hotline.Permissions
{
public enum EPermission
{
NotSet = 0, //error condition
//Here is an example of very detailed control over something
#region 系统管理相关接口(100)
///
/// 系统管理
///
[Display(GroupName = "系统管理", Name = "系统管理", Description = "系统管理")]
SystemManage = 100000,
///
/// 机构用户
///
[Display(GroupName ="系统管理",Name ="机构用户",Description ="机构用户")]
UserManage = 100100,
#region 用户管理
///
/// 分页查询用户
///
[Display(GroupName = "用户管理", Name = "分页查询用户", Description = "分页查询用户")]
QueryPagedUser = 100101,
///
/// 新增用户
///
[Display(GroupName = "用户管理",Name ="新增用户",Description ="新增用户")]
AddUser = 100102,
///
/// 更新用户
///
[Display(GroupName = "用户管理", Name = "更新用户", Description = "更新用户")]
UpdateUser = 100103,
///
/// 删除用户
///
[Display(GroupName = "用户管理", Name = "删除用户", Description = "删除用户")]
RemoveUser = 100104,
///
/// 设置用户角色
///
[Display(GroupName = "用户管理", Name ="设置用户角色",Description ="设置用户角色")]
SetUserRoles = 100105,
///
/// 分页查询用户角色
///
[Display(GroupName = "用户管理",Name ="分页查询用户角色",Description ="分页查询用户角色")]
GetUserRoles = 100106,
///
/// 查询密码更改状态
///
[Display(GroupName ="用户管理",Name = "查询密码更改状态",Description = "查询密码更改状态")]
GetPasswordChangeStatus=100107,
#endregion
#region 角色管理
///
/// 分页查询角色
///
[Display(GroupName = "角色管理", Name = "分页查询角色", Description = "分页查询角色")]
QueryPagedRole = 100200,
///
/// 新增角色
///
[Display(GroupName = "角色管理", Name = "新增角色", Description = "新增角色")]
AddRole = 100201,
///
/// 删除角色
///
[Display(GroupName = "角色管理", Name = "删除角色", Description = "删除角色")]
RemoveRole = 100202,
///
/// 更新角色
///
[Display(GroupName = "角色管理", Name = "更新角色", Description = "更新角色")]
UpdateRole = 100203,
#region 应用权限管理
///
/// 分配权限
///
[Display(GroupName ="角色管理",Name ="分配权限",Description ="分配权限")]
AllocationAuthority = 100204,
///
/// 获取角色权限
///
[Display(GroupName ="角色管理",Name ="获取角色权限",Description ="获取角色权限")]
GetAuthority = 100205,
#endregion
#region 数据权限管理
///
/// 新增数据权限
///
[Display(GroupName = "角色管理",Name ="新增数据权限",Description ="新增数据权限")]
AddDataAuthority = 100206,
///
/// 修改数据权限
///
[Display(GroupName = "角色管理",Name="修改数据权限",Description ="修改数据权限")]
UpdateDataAuthority = 100207,
///
/// 删除数据权限
///
[Display(GroupName ="角色管理",Name ="删除数据权限",Description ="删除数据权限")]
RemoveDataAuthority = 100208,
///
/// 获取数据权限
///
[Display(GroupName ="角色管理",Name ="获取数据权限",Description ="获取数据权限")]
GetDataAuthorityByRole = 100209,
#endregion
#endregion
#region 系统参数
///
/// 获取系统参数列表
///
[Display(GroupName = "系统设置", Name = "获取系统参数列表", Description = "获取系统参数列表")]
GetSysSettingsAsync = 100300,
///
/// 更新设置
///
[Display(GroupName = "系统设置", Name = "更新设置", Description = "更新设置")]
ModifySettings = 100301,
#endregion
#region 菜单管理
///
/// 菜单管理
///
[Display(GroupName = "系统设置",Name = "菜单管理",Description ="菜单管理")]
GetMenuJson = 100400,
///
/// 新增菜单
///
[Display(GroupName ="系统设置",Name ="新增菜单",Description ="新增菜单")]
AddMenu = 100401,
///
/// 修改菜单
///
[Display(GroupName ="系统设置",Name ="修改菜单",Description ="修改菜单")]
UpdateMenu = 100402,
///
/// 删除菜单
///
[Display(GroupName ="系统设置",Name ="删除菜单",Description ="删除菜单")]
RemoveMenu = 100403,
///
/// 获取菜单对象
///
[Display(GroupName ="系统设置",Name ="获取菜单对象",Description ="获取菜单对象")]
GetMenu = 100408,
#region 按钮管理
///
/// 获取菜单按钮
///
[Display(GroupName ="系统设置",Name ="获取菜单按钮",Description ="获取菜单按钮")]
GetButtonByMenu = 100404,
///
/// 新增按钮
///
[Display(GroupName ="系统设置",Name ="新增按钮",Description ="新增按钮")]
AddButton = 100405,
///
/// 编辑按钮
///
[Display(GroupName ="系统设置",Name ="编辑按钮",Description ="编辑按钮")]
UpdateButton = 100406,
///
/// 删除按钮
///
[Display(GroupName ="系统设置",Name ="删除按钮",Description ="删除按钮")]
RemoveButton = 100407,
#endregion
#endregion
#endregion
#region 通话相关接口(200)
///
/// 电话记录
///
[Display(GroupName = "电话记录",Name ="电话记录",Description ="电话记录")]
CallManager = 200000,
#region 通话记录
///
/// 分页通话记录列表
///
[Display(GroupName = "通话", Name = "分页通话记录列表", Description = "分页通话记录列表")]
GetCallList = 200100,
#endregion
#region 黑名单管理
///
/// 分页查询黑名单
///
[Display(GroupName = "黑名单管理", Name = "分页查询黑名单", Description = "分页查询黑名单")]
QueryPagedBlack = 200200,
///
/// 添加电话号至黑名单
///
[Display(GroupName = "黑名单管理", Name = "添加电话号至黑名单", Description = "添加电话号至黑名单")]
AddBlackList = 200201,
///
/// 删除黑名单数据
///
[Display(GroupName = "黑名单管理", Name = "删除黑名单数据", Description = "删除黑名单数据")]
RemoveBlacklist = 200202,
#endregion
#endregion
#region 设备管理(300)
///
/// 设备管理
///
[Display(GroupName ="设备管理",Name ="设备管理",Description ="设备管理")]
DeviceManager = 300000,
#region 话机
///
/// 查询所有话机
///
[Display(GroupName = "话机管理", Name = "查询所有话机", Description = "查询所有话机")]
QueryTels = 300100,
///
/// 同步分机
///
[Display(GroupName ="话机管理",Name ="同步分机",Description ="同步分机")]
SyncTelsAsync =300101,
#endregion
#region 分机组
///
/// 查询所有分机组
///
[Display(GroupName = "分机组管理", Name = "查询所有分机组", Description = "查询所有分机组")]
QueryTelGroups = 300200,
///
/// 页面基础信息
///
[Display(GroupName = "分机组管理",Name ="页面基础信息",Description ="页面基础信息")]
GetBaseInfoGroup = 300201,
///
/// 新增分机组
///
[Display(GroupName = "分机组管理", Name = "新增分机组", Description = "新增分机组")]
AddTelGroup = 300202,
///
/// 更新分机组
///
[Display(GroupName = "分机组管理", Name = "更新分机组", Description = "更新分机组")]
UpdateTelGroup = 300203,
#endregion
#region IVR管理
#region IVR分类
///
/// 查询所有IVR分类
///
[Display(GroupName = "IVR管理", Name = "查询所有IVR分类", Description = "查询所有IVR分类")]
GetCategories = 300300,
///
/// 查询IVR分类
///
[Display(GroupName = "IVR管理", Name = "查询IVR分类(含ivr)", Description = "查询IVR分类(含ivr)")]
GetCategorie = 300301,
///
/// 新增IVR分类
///
[Display(GroupName = "IVR管理", Name = "新增IVR分类", Description = "新增IVR分类")]
AddCategory = 300302,
///
/// 更新IVR分类
///
[Display(GroupName = "IVR管理", Name = "更新IVR分类", Description = "更新IVR分类")]
UpdateCategory = 300303,
///
/// 删除分类(包含分类下的IVR)
///
[Display(GroupName = "IVR管理", Name = "删除分类", Description = "删除分类")]
RemoveCategory = 300304,
#endregion
#region IVR
///
/// 查询所有IVR
///
[Display(GroupName = "IVR管理", Name = "查询所有IVR", Description = "查询所有IVR")]
QueryIvrs = 300400,
///
/// 新增IVR
///
[Display(GroupName = "IVR管理", Name = "新增IVR", Description = "新增IVR")]
AddIvr = 300401,
///
/// 更新IVR
///
[Display(GroupName = "IVR管理", Name = "更新IVR", Description = "更新IVR")]
UpdateIvr = 300402,
///
/// 构建IVR关系
///
[Display(GroupName = "IVR管理", Name = "构建IVR关系", Description = "构建IVR关系")]
Structure = 300403,
///
/// 删除IVR关系(并非删除IVR)
///
[Display(GroupName = "IVR管理", Name = "删除IVR关系", Description = "删除IVR关系")]
DeStructureIvr = 300404,
///
/// 替换某个IVR分组下的起始IVR
///
[Display(GroupName = "IVR管理", Name = "替换某个IVR分组下的起始IVR", Description = "替换某个IVR分组下的起始IVR")]
ReplaceRoot = 300405,
///
/// 查询ivr分类,以树形结构返回IVR关系
///
[Display(GroupName = "IVR管理", Name = "查询ivr分类,以树形结构返回IVR关系", Description = "查询ivr分类,以树形结构返回IVR关系")]
GetBeginingIvr = 300406,
///
/// 页面基础信息
///
[Display(GroupName = "IVR管理", Name = "页面基础信息", Description = "页面基础信息")]
GetBaseInfoIvr = 300407,
#endregion
#endregion
#endregion
#region 公用(999)
#region 上/下班
///
/// 上班
///
[Display(GroupName = "公用", Name = "上班", Description = "上班")]
OnDuty = 999101,
///
/// 下班
///
[Display(GroupName = "公用", Name = "下班", Description = "下班")]
OffDuty = 999102,
#endregion
#region 通话控制
///
/// 分机休息
///
[Display(GroupName = "公用", Name = "分机休息", Description = "分机休息")]
Rest = 999103,
///
/// 分机结束休息
///
[Display(GroupName = "公用", Name = "分机结束休息", Description = "分机结束休息")]
UnRest = 999104,
///
/// 保持通话
///
[Display(GroupName = "公用", Name = "保持通话", Description = "保持通话")]
Hold = 999105,
///
/// 恢复状态(接触Hold状态)
///
[Display(GroupName = "公用", Name = "恢复通话(解除Hold状态)", Description = "恢复通话(解除Hold状态)")]
UnHold = 999106,
///
/// 分机呼分机
///
[Display(GroupName = "公用", Name = "分机呼分机", Description = "分机呼分机")]
TelToTel = 999107,
///
/// 分机拨打外部电话
///
[Display(GroupName = "公用", Name = "分机拨打外部电话", Description = "分机拨打外部电话")]
TelToOuter = 999108,
///
/// 指定模拟外线外呼(分机拨打外部电话)
///
[Display(GroupName = "公用", Name = "指定模拟外线外呼(分机拨打外部电话)", Description = "指定模拟外线外呼(分机拨打外部电话)")]
TelToOuterByLine = 999109,
///
/// 来电转分机
///
[Display(GroupName = "公用", Name = "来电转分机", Description = "来电转分机")]
VisitorToTel = 999110,
///
/// 来电转外部电话
///
[Display(GroupName = "公用", Name = "来电转外部电话", Description = "来电转外部电话")]
VisitorToOuter = 999111,
///
/// 来电转分机组队列
///
[Display(GroupName = "公用", Name = "来电转分机组队列", Description = "来电转分机组队列")]
VisitorToGroup = 999112,
///
/// 去电转外部电话
///
[Display(GroupName = "公用", Name = "去电转外部电话", Description = "去电转外部电话")]
OuterToOuter = 999113,
///
/// 去电转分机
///
[Display(GroupName = "公用", Name = "去电转分机", Description = "去电转分机")]
OuterToTel = 999114,
///
/// 三方会议
///
[Display(GroupName = "公用", Name = "三方会议", Description = "三方会议")]
Conference = 999115,
#endregion
#region 语音文件
///
/// 查询语音文件
///
[Display(GroupName = "公用", Name = "查询语音文件", Description = "查询语音文件")]
VoiceQueryList = 999116,
///
/// 删除语音文件
///
[Display(GroupName = "公用", Name = "删除语音文件", Description = "删除语音文件")]
RemoveVoiceFile = 999117,
#endregion
#region 通话
///
/// 强拆分机
///
[Display(GroupName = "公用", Name = "强拆分机", Description = "强拆分机")]
ClearExt = 999118,
///
/// 强拆来电
///
[Display(GroupName = "公用", Name = "强拆来电", Description = "强拆来电")]
ClearVisitor = 999119,
///
/// 强拆去电
///
[Display(GroupName = "公用", Name = "强拆去电", Description = "强拆去电")]
ClearOuter = 999120,
/////
///// 通话记录(外部对接)
/////
//[Display(GroupName = "通话", Name = "通话记录(外部对接)", Description = "通话记录(外部对接)")]
//GetOutCallList = 999121,
///
/// 监听分机
///
[Display(GroupName = "公用", Name = "监听分机", Description = "监听分机")]
MonitorExt = 999121,
///
/// 从监听到插播状态变换
///
[Display(GroupName = "公用", Name = "从监听到插播状态变换", Description = "从监听到插播状态变换")]
MonitorExtToTalk = 999122,
///
/// 从插播到监听状态变换
///
[Display(GroupName = "公用", Name = "从插播到监听状态变换", Description = "从插播到监听状态变换")]
MonitorExtToListen = 999123,
///
/// 强插
///
[Display(GroupName = "公用", Name = "强插", Description = "强插")]
BargeinExt = 999124,
#endregion
#endregion
}
}