Add TRANSFER transaction type with bulk action and auto-rules

- Add TRANSFER to TransactionType enum; excluded from cash flow queries
- Add TransferRule model: description patterns that auto-mark transactions
  as transfers on upload (takes priority over budget rules)
- Bulk action "Mark as transfer" in transaction table
- Transfer Rules button/dialog on transactions page for managing patterns
- Transfers shown with ⇄ prefix and muted color in transaction list

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-21 20:15:07 -04:00
parent 34bf24b35d
commit 6f1376cc53
11 changed files with 267 additions and 19 deletions

View File

@@ -13,9 +13,10 @@ model User {
passwordHash String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
accounts Account[]
budgets Budget[]
budgetRules BudgetRule[]
accounts Account[]
budgets Budget[]
budgetRules BudgetRule[]
transferRules TransferRule[]
}
enum AccountType {
@@ -45,6 +46,7 @@ model Account {
enum TransactionType {
DEBIT
CREDIT
TRANSFER
}
model Transaction {
@@ -100,6 +102,16 @@ model BudgetRule {
@@index([budgetId])
}
model TransferRule {
id String @id @default(cuid())
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
pattern String
createdAt DateTime @default(now())
@@index([userId])
}
model CsvUpload {
id String @id @default(cuid())
accountId String