Files
whale-town-end/src/business/admin/admin_constants.ts
moyin 6924416bbd feat:实现管理员系统核心功能
- 添加管理员数据库管理控制器和服务
- 实现管理员操作日志记录系统
- 添加数据库异常处理过滤器
- 完善管理员权限验证和响应格式
- 添加全面的属性测试覆盖
2026-01-08 23:05:34 +08:00

185 lines
3.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 管理员模块常量定义
*
* 功能描述:
* - 定义管理员模块使用的所有常量
* - 统一管理配置参数和限制值
* - 避免魔法数字的使用
* - 提供类型安全的常量访问
*
* 职责分离:
* - 常量集中管理
* - 配置参数定义
* - 限制值设定
* - 敏感字段标识
*
* 最近修改:
* - 2026-01-08: 代码质量优化 - 添加日志查询限制和请求ID配置常量补充用户查询限制常量 (修改者: moyin)
* - 2026-01-08: 功能新增 - 创建管理员模块常量定义文件 (修改者: moyin)
*
* @author moyin
* @version 1.2.0
* @since 2026-01-08
* @lastModified 2026-01-08
*/
/**
* 分页限制常量
*/
export const PAGINATION_LIMITS = {
/** 默认每页数量 */
DEFAULT_LIMIT: 20,
/** 默认偏移量 */
DEFAULT_OFFSET: 0,
/** 用户列表最大每页数量 */
USER_LIST_MAX_LIMIT: 100,
/** 搜索结果最大每页数量 */
SEARCH_MAX_LIMIT: 50,
/** 日志列表最大每页数量 */
LOG_LIST_MAX_LIMIT: 200,
/** 批量操作最大数量 */
BATCH_OPERATION_MAX_SIZE: 100
} as const;
/**
* 请求ID前缀常量
*/
export const REQUEST_ID_PREFIXES = {
/** 通用请求 */
GENERAL: 'req',
/** 错误请求 */
ERROR: 'err',
/** 管理员操作 */
ADMIN_OPERATION: 'admin',
/** 数据库操作 */
DATABASE_OPERATION: 'db',
/** 健康检查 */
HEALTH_CHECK: 'health',
/** 日志操作 */
LOG_OPERATION: 'log'
} as const;
/**
* 敏感字段列表
*/
export const SENSITIVE_FIELDS = [
'password',
'password_hash',
'newPassword',
'oldPassword',
'token',
'api_key',
'secret',
'private_key',
'zulipApiKeyEncrypted'
] as const;
/**
* 日志保留策略常量
*/
export const LOG_RETENTION = {
/** 默认保留天数 */
DEFAULT_DAYS: 90,
/** 最少保留天数 */
MIN_DAYS: 7,
/** 最多保留天数 */
MAX_DAYS: 365,
/** 敏感操作日志保留天数 */
SENSITIVE_OPERATION_DAYS: 180
} as const;
/**
* 操作类型常量
*/
export const OPERATION_TYPES = {
CREATE: 'CREATE',
UPDATE: 'UPDATE',
DELETE: 'DELETE',
QUERY: 'QUERY',
BATCH: 'BATCH'
} as const;
/**
* 目标类型常量
*/
export const TARGET_TYPES = {
USERS: 'users',
USER_PROFILES: 'user_profiles',
ZULIP_ACCOUNTS: 'zulip_accounts',
ADMIN_LOGS: 'admin_logs'
} as const;
/**
* 操作结果常量
*/
export const OPERATION_RESULTS = {
SUCCESS: 'SUCCESS',
FAILED: 'FAILED'
} as const;
/**
* 错误码常量
*/
export const ERROR_CODES = {
BAD_REQUEST: 'BAD_REQUEST',
UNAUTHORIZED: 'UNAUTHORIZED',
FORBIDDEN: 'FORBIDDEN',
NOT_FOUND: 'NOT_FOUND',
CONFLICT: 'CONFLICT',
UNPROCESSABLE_ENTITY: 'UNPROCESSABLE_ENTITY',
TOO_MANY_REQUESTS: 'TOO_MANY_REQUESTS',
INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',
BAD_GATEWAY: 'BAD_GATEWAY',
SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',
GATEWAY_TIMEOUT: 'GATEWAY_TIMEOUT',
UNKNOWN_ERROR: 'UNKNOWN_ERROR'
} as const;
/**
* HTTP状态码常量
*/
export const HTTP_STATUS = {
OK: 200,
CREATED: 201,
BAD_REQUEST: 400,
UNAUTHORIZED: 401,
FORBIDDEN: 403,
NOT_FOUND: 404,
CONFLICT: 409,
UNPROCESSABLE_ENTITY: 422,
TOO_MANY_REQUESTS: 429,
INTERNAL_SERVER_ERROR: 500,
BAD_GATEWAY: 502,
SERVICE_UNAVAILABLE: 503,
GATEWAY_TIMEOUT: 504
} as const;
/**
* 缓存键前缀常量
*/
export const CACHE_KEYS = {
USER_LIST: 'admin:users:list',
USER_PROFILE_LIST: 'admin:profiles:list',
ZULIP_ACCOUNT_LIST: 'admin:zulip:list',
STATISTICS: 'admin:stats'
} as const;
/**
* 日志查询限制常量
*/
export const LOG_QUERY_LIMITS = {
/** 默认日志查询每页数量 */
DEFAULT_LOG_QUERY_LIMIT: 50,
/** 敏感操作日志默认查询数量 */
SENSITIVE_LOG_DEFAULT_LIMIT: 50
} as const;
/**
* 用户查询限制常量
*/
export const USER_QUERY_LIMITS = {
/** 用户状态统计查询的最大用户数 */
MAX_USERS_FOR_STATS: 10000,
/** 管理员操作历史默认查询数量 */
ADMIN_HISTORY_DEFAULT_LIMIT: 20
} as const;