From e6088fe06f53f08cae27d8035668f1c1d2e15602 Mon Sep 17 00:00:00 2001 From: Br0wnHammer Date: Fri, 27 Mar 2026 20:07:00 +0530 Subject: [PATCH] feat(dlq): add IDLQRepository interface for dead letter queue data access --- server/src/repositories/dlq/IDLQRepository.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 server/src/repositories/dlq/IDLQRepository.ts 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; +}