@defikitdotnet/education-module-ai
Version:
AI Education Module using Agent Framework
42 lines (41 loc) • 1.13 kB
TypeScript
import { SqliteAdapter } from "../database/SqliteAdapter";
import Database from "better-sqlite3";
export declare abstract class BaseRepository<T> {
protected db: Database.Database;
protected tableName: string;
constructor(dbAdapter: SqliteAdapter, tableName: string);
/**
* Generate a new UUID
*/
protected generateId(): string;
/**
* Convert snake_case database column names to camelCase
*/
protected toCamelCase(obj: Record<string, any>): any;
/**
* Convert camelCase property names to snake_case
*/
protected toSnakeCase(obj: Record<string, any>): any;
private snakeToCamel;
private camelToSnake;
/**
* Find all records
*/
findAll(): Promise<T[]>;
/**
* Find a record by ID
*/
findById(id: string): Promise<T | null>;
/**
* Create a new record
*/
abstract create(data: Omit<T, "id">): Promise<T>;
/**
* Update an existing record
*/
abstract update(id: string, data: Partial<T>): Promise<T | null>;
/**
* Delete a record
*/
delete(id: string): Promise<boolean>;
}