diff --git a/server/src/repositories/dlq/IDLQRepository.ts b/server/src/repositories/dlq/IDLQRepository.ts new file mode 100644 index 000000000..5e26e6096 --- /dev/null +++ b/server/src/repositories/dlq/IDLQRepository.ts @@ -0,0 +1,30 @@ +import type { DLQItem, DLQItemType, DLQItemStatus } from "@/types/index.js"; + +export interface DLQQueryFilters { + type?: DLQItemType; + status?: DLQItemStatus; + page: number; + rowsPerPage: number; +} + +export interface DLQStatusCount { + status: DLQItemStatus; + type: DLQItemType; + count: number; +} + +export interface IDLQRepository { + // create + create(item: Partial): Promise; + // fetch + findById(id: string): Promise; + findByTeamId(teamId: string, filters: DLQQueryFilters): Promise; + findRetryable(limit: number): Promise; + countByTeamId(teamId: string): Promise; + countByTeamIdGrouped(teamId: string): Promise; + // update + updateById(id: string, patch: Partial): Promise; + // delete + deleteById(id: string, teamId: string): Promise; + deleteOlderThan(date: Date): Promise; +}