diff --git a/src/app/(app)/stls/_components/skipped-columns.tsx b/src/app/(app)/stls/_components/skipped-columns.tsx index 9181847..5644d56 100644 --- a/src/app/(app)/stls/_components/skipped-columns.tsx +++ b/src/app/(app)/stls/_components/skipped-columns.tsx @@ -20,6 +20,7 @@ export interface SkippedRow { sourceChannel: { id: string; title: string }; isMultipart: boolean; partCount: number; + attemptCount: number; createdAt: string; } @@ -107,9 +108,22 @@ export function getSkippedColumns({ ), accessorFn: (row) => row.sourceChannel.title, }, + { + accessorKey: "attemptCount", + header: ({ column }) => , + cell: ({ row }) => { + const count = row.original.attemptCount; + const variant = count >= 5 ? "destructive" : count > 1 ? "secondary" : "outline"; + return ( + + {count} + + ); + }, + }, { accessorKey: "createdAt", - header: ({ column }) => , + header: ({ column }) => , cell: ({ row }) => ( {new Date(row.original.createdAt).toLocaleDateString()} diff --git a/src/lib/telegram/queries.ts b/src/lib/telegram/queries.ts index 6ece96a..898a016 100644 --- a/src/lib/telegram/queries.ts +++ b/src/lib/telegram/queries.ts @@ -589,6 +589,7 @@ export async function listSkippedPackages(options: { sourceMessageId: s.sourceMessageId.toString(), isMultipart: s.isMultipart, partCount: s.partCount, + attemptCount: s.attemptCount, createdAt: s.createdAt.toISOString(), })); diff --git a/src/lib/telegram/types.ts b/src/lib/telegram/types.ts index b49f1ab..c36185c 100644 --- a/src/lib/telegram/types.ts +++ b/src/lib/telegram/types.ts @@ -55,6 +55,8 @@ export interface SkippedPackageItem { sourceMessageId: string; isMultipart: boolean; partCount: number; + /** How many times the worker has tried this source message across cycles. */ + attemptCount: number; createdAt: string; }