/** * 管理员模块常量定义 * * 功能描述: * - 定义管理员模块使用的所有常量 * - 统一管理配置参数和限制值 * - 避免魔法数字的使用 * - 提供类型安全的常量访问 * * 职责分离: * - 常量集中管理 * - 配置参数定义 * - 限制值设定 * - 敏感字段标识 * * 最近修改: * - 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;