UNPKG

@defikitdotnet/education-module-ai

Version:
42 lines (41 loc) 1.13 kB
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>; }