/** * DomainManager接口定义 */ import { Domain, CreateDomainData, UpdateDomainData } from '../models/Domain'; import { DomainManagerConfig, DomainQuery, QueryOptions } from './common'; /** * DomainManager接口,定义了域名管理的核心功能 */ export interface DomainManager { /** * 初始化DomainManager * @param config 配置参数,包含数据库类型和连接信息 * @returns Promise */ initialize(config: DomainManagerConfig): Promise; /** * 创建新域名记录 * @param domainData 域名数据对象 * @returns Promise 创建成功的域名完整数据对象 */ createDomain(domainData: CreateDomainData): Promise; /** * 根据ID获取域名信息 * @param id 域名唯一标识符 * @returns Promise 域名数据对象,不存在则返回null */ getDomainById(id: string): Promise; /** * 根据域名名称获取域名信息 * @param name 域名名称 * @returns Promise 域名数据对象,不存在则返回null */ getDomainByName(name: string): Promise; /** * 更新域名信息 * @param id 域名唯一标识符 * @param domainData 更新的域名数据 * @returns Promise 更新后的完整域名数据对象 */ updateDomain(id: string, domainData: UpdateDomainData): Promise; /** * 删除域名 * @param id 域名唯一标识符 * @returns Promise 删除成功返回true,不存在返回false */ deleteDomain(id: string): Promise; /** * 查询域名列表 * @param query 查询条件 * @param options 查询选项(分页、排序等) * @returns Promise 查询结果数组 */ findDomains(query?: DomainQuery, options?: QueryOptions): Promise; /** * 切换域名启用状态 * @param id 域名唯一标识符 * @param enabled 是否启用 * @returns Promise 更新后的域名数据对象 */ toggleDomainStatus(id: string, enabled: boolean): Promise; /** * 关闭DomainManager,释放资源 * @returns Promise */ close(): Promise; }