/** * 通用接口定义文件 */ // 从 StorageAdapter.ts 导入存储相关接口 import { StorageConfig, QueryCondition, SortOption } from './StorageAdapter'; // 数据库配置接口 - 向后兼容 export interface DatabaseConfig { url?: string; // MongoDB连接URL或MySQL连接URL host?: string; // 数据库主机 port?: number; // 数据库端口 database?: string; // 数据库名称 username?: string; // 用户名 password?: string; // 密码 [key: string]: any; // 其他配置参数 } /** * 通用持久化配置接口 * 用于服务层和管理层的统一配置 */ export interface PersistenceConfig { /** * 存储类型 */ storageType: string; /** * 存储配置详情 */ storageConfig: StorageConfig; /** * 是否启用缓存 */ enableCache?: boolean; /** * 缓存配置 */ cacheConfig?: { ttl?: number; maxSize?: number; }; } // 域名管理器配置接口 export interface DomainManagerConfig { /** * 持久化配置 */ persistence: PersistenceConfig; /** * 其他可选配置参数 */ options?: { validateData?: boolean; // 是否在模型层验证数据 autoTimestamp?: boolean; // 是否自动更新时间戳 }; } // 域名查询条件接口 export interface DomainQuery { /** * 按域名名称模糊匹配 */ name?: string; /** * 按记录类型过滤 */ recordType?: string | string[]; /** * 按启用状态过滤 */ enabled?: boolean; /** * 按管理员过滤 */ admin?: string; /** * 按标签过滤 */ tags?: string | string[]; /** * 按目标地址过滤 */ targetAddress?: string; /** * 创建时间范围过滤 */ createdAt?: { $gte?: Date | string; $lte?: Date | string; }; /** * 更新时间范围过滤 */ updatedAt?: { $gte?: Date | string; $lte?: Date | string; }; } // 查询选项接口 export interface QueryOptions { /** * 排序条件 */ sort?: SortOption; /** * 限制返回结果数量 */ limit?: number; /** * 结果偏移量,用于分页 */ offset?: number; /** * 投影,指定要返回的字段 */ projection?: Record; } // 域名查询结果接口 export interface DomainQueryResult { data: T[]; // 数据列表 total: number; // 总记录数 page: number; // 当前页码 pageSize: number; // 每页大小 totalPages: number; // 总页数 } // 重新导出存储相关接口 export { StorageConfig, QueryCondition, SortOption };