export interface IRepository { /** * Looking up all Model-Data * @returns Promise */ all(): Promise; /** * Searching Model for a value * @param {string | undefined} search * @returns Promise */ where(search: string | undefined): Promise; /** * Suche mit Parametern * @param {{ [Identifier: string]: string }} params * @returns Promise */ whereByParams(params: { [Identifier: string]: string }): Promise; /** * Deleting a Model * @param {number} id * @returns Promise */ destroy(id: number): Promise; /** * Finding a Model by his id * @param {Promise} id */ find(id: number): Promise; /** * Updating a Model * @param {T} model */ update(model: T): Promise; /** * Creating a model * @param {T} model */ create(model: T): Promise; /** * Saving a model. Repository decides if it should update or create * @param {T} model */ save(model: T): Promise; }