/** * DomainDAO接口定义 */ import { Domain } from '../models/Domain'; import { DomainQuery } from './common'; /** * DomainDAO接口,定义了域名数据访问层的功能 */ export interface DomainDAO { /** * 初始化DAO * @returns Promise */ initialize(): Promise; /** * 关闭DAO * @returns Promise */ close(): Promise; /** * 创建域名记录 * @param domain 域名对象 * @returns Promise 创建后的域名,包含ID */ create(domain: Domain): Promise; /** * 根据ID获取域名 * @param id 域名ID * @returns Promise 查询到的域名或null */ findById(id: string): Promise; /** * 根据名称获取域名 * @param name 域名名称 * @returns Promise 查询到的域名或null */ findByName(name: string): Promise; /** * 根据条件查询域名列表 * @param query 查询条件 * @param skip 跳过的记录数 * @param limit 返回的最大记录数 * @param sort 排序条件 * @param projection 投影,指定要返回的字段 * @returns Promise 查询结果数组 */ find(query?: DomainQuery, skip?: number, limit?: number, sort?: Record, projection?: Record): Promise; /** * 更新域名 * @param id 域名ID * @param domain 要更新的数据 * @returns Promise 更新后的域名或null */ update(id: string, domain: Partial): Promise; /** * 删除域名 * @param id 域名ID * @returns Promise 是否删除成功 */ delete(id: string): Promise; /** * 批量创建域名 * @param domains 域名列表 * @returns Promise 创建后的域名列表 */ bulkCreate(domains: Domain[]): Promise; }