From 1af0a6ba7a26a4aec664b076affb2908d8773af3 Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Mon, 24 Aug 2026 00:53:43 +0530 Subject: [PATCH] feat(fetch-requests): pdf/xlsx source types + trust_fallback create field --- src/FetchRequest/FetchRequestCreate.tsx | 2 +- .../fetch-requests/fetch-requests.models.ts | 19 +++++++++++++++++-- src/features/fetch-requests/index.ts | 4 ++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/FetchRequest/FetchRequestCreate.tsx b/src/FetchRequest/FetchRequestCreate.tsx index 5b19e7b..b6d7154 100644 --- a/src/FetchRequest/FetchRequestCreate.tsx +++ b/src/FetchRequest/FetchRequestCreate.tsx @@ -13,7 +13,7 @@ import { EmptyState } from "../ui/EmptyState"; import { formatApiError } from "../features/fetch-requests"; import { useToast } from "../ui/Toast"; -const CREATE_FIELDS = ["account", "bank", "pipeline", "start_date", "end_date", "source"]; +const CREATE_FIELDS = ["account", "bank", "pipeline", "trust_fallback", "start_date", "end_date", "source"]; function FetchRequestList() { const navigate = useNavigate(); diff --git a/src/features/fetch-requests/fetch-requests.models.ts b/src/features/fetch-requests/fetch-requests.models.ts index 82a41eb..f3750dc 100644 --- a/src/features/fetch-requests/fetch-requests.models.ts +++ b/src/features/fetch-requests/fetch-requests.models.ts @@ -7,7 +7,10 @@ export type FetchRequestStatus = | "completed" | "failed"; +export type SourceType = "file" | "pdf" | "xlsx" | "email"; + export interface FileSource { + type?: SourceType; path: string; bank: string; raw_lines?: string[]; @@ -17,7 +20,16 @@ export interface FileSource { txn_dicts_count?: number; } +export interface PdfSource extends FileSource { + type: "pdf"; +} + +export interface XlsxSource extends FileSource { + type: "xlsx"; +} + export interface EmailSource { + type: "email"; bank: string; from_email?: string; subject?: string; @@ -28,10 +40,13 @@ export interface EmailSource { export type PipelineType = "heuristic" | "llm" | "llama_parse"; +export type TrustFallback = "amount" | "balance"; + export interface FetchRequestCreate { - source: FileSource | EmailSource; + source: PdfSource | XlsxSource | FileSource | EmailSource; account_name: string; pipeline?: PipelineType; + trust_fallback?: TrustFallback | null; payor_username?: string; start_date?: string; end_date?: string; @@ -113,7 +128,7 @@ export interface SSEEvent { export interface FetchRequestFilters { status?: FetchRequestStatus[]; account_name?: string; - source_type?: "file" | "email"; + source_type?: SourceType; } export function formatApiError(err: any): string { diff --git a/src/features/fetch-requests/index.ts b/src/features/fetch-requests/index.ts index 9750d51..92944cd 100644 --- a/src/features/fetch-requests/index.ts +++ b/src/features/fetch-requests/index.ts @@ -5,6 +5,9 @@ export type { FetchRequestStatus, FetchRequestFilters, FileSource, + PdfSource, + XlsxSource, + SourceType, EmailSource, UploadResult, PendingAmbiguity, @@ -15,6 +18,7 @@ export type { SSEEventStatus, ProgressMessage, PipelineType, + TrustFallback, } from "./fetch-requests.models"; export { RETRY_MAX, formatApiError } from "./fetch-requests.models"; export {