@damourlabs/euro-clinical-trials
Version:
A Nuxt 3 application for visualizing and managing clinical trials data in Europe, built with modern web technologies.
18 lines (16 loc) • 559 B
text/typescript
// ~/types/repository.ts
export interface IRepository<T, TFilters = any> {
findAll(filters?: TFilters): Promise<T[]>
findById(id: string | number): Promise<T>
create(item: Partial<T>): Promise<T>
update(id: string | number, item: Partial<T>): Promise<T>
delete(id: string | number): Promise<void>
}
export interface IPaginatedRepository<T, TFilters = any> extends IRepository<T, TFilters> {
findWithPagination(filters?: TFilters): Promise<{
items: T[]
total: number
page: number
limit: number
}>
}