/**
* @file Demo 仓库定义,衔接业务层与本地数据库。
* @description 如果需要与其他模块共享,请移到 shared/contracts 共享契约层
* @author JunBin.Yang
*/
import { DemoEntity } from "../models/DemoEntity";
/**
* 定义跨功能包共享的 DI 服务键
* @description 不跨包共享时不需要 Key
*/
export const DEMO_REPOSITORY_KEY: string = "demoRepository";
export interface IDemoRepository {
/**
* 创建 Demo 记录
* @param {string} title - 标题
* @param {string} description - 描述
* @returns {Promise<number>} 新建记录主键
*/
createDemo(title: string, description: string): Promise<number>;
/**
* 更新 Demo 记录
* @param {DemoEntity} entity - 待更新的实体
* @returns {Promise<void>} Promise<void>
*/
updateDemo(entity: DemoEntity): Promise<void>;
/**
* 删除指定 ID 的 Demo 记录
* @param {number} id - 记录主键
* @returns {Promise<void>} Promise<void>
*/
deleteDemo(id: number): Promise<void>;
/**
* 清空全部 Demo 记录
* @returns {Promise<number>} 受影响行数
*/
clearAll(): Promise<number>;
/**
* 获取所有 Demo 记录,按更新时间倒序
* @returns {Promise<DemoEntity[]>} Demo 列表
*/
getAll(): Promise<DemoEntity[]>;
/**
* 根据主键查询单条 Demo 记录
* @param {number} id - 记录主键
* @returns {Promise<DemoEntity | undefined>} 匹配到的记录或 undefined
*/
getById(id: number): Promise<DemoEntity | undefined>;
}