Files
fintrack/lib/types.ts

74 lines
1.4 KiB
TypeScript

// Types for the banking management application
export interface Transaction {
id: string;
accountId: string;
date: string;
amount: number;
description: string;
type: "DEBIT" | "CREDIT";
categoryId: string | null;
isReconciled: boolean;
fitId: string; // OFX unique transaction ID
memo?: string;
checkNum?: string;
}
export interface Account {
id: string;
name: string;
bankId: string;
accountNumber: string;
type: "CHECKING" | "SAVINGS" | "CREDIT_CARD" | "OTHER";
folderId: string | null;
balance: number;
currency: string;
lastImport: string | null;
externalUrl: string | null;
}
export interface Folder {
id: string;
name: string;
parentId: string | null;
color: string;
icon: string;
}
export interface Category {
id: string;
name: string;
color: string;
icon: string;
keywords: string[]; // For auto-categorization
parentId: string | null;
}
export interface BankingData {
accounts: Account[];
transactions: Transaction[];
folders: Folder[];
categories: Category[];
}
// OFX Parsed types
export interface OFXTransaction {
fitId: string;
date: string;
amount: number;
name: string;
memo?: string;
checkNum?: string;
type: string;
}
export interface OFXAccount {
bankId: string;
accountId: string;
accountType: string;
balance: number;
balanceDate: string;
currency: string;
transactions: OFXTransaction[];
}