// prisma/schema.prisma generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } model Account { id String @id @default(uuid()) bankName String accountNumber String @db.VarChar(6) // Last 6 digits name String // Friendly name type AccountType @default(CHECKING) status AccountStatus @default(ACTIVE) currency String @default("USD") balance Decimal @default(0) @db.Decimal(10, 2) notes String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt transactions Transaction[] @@index([status]) @@map("accounts") } model Transaction { id String @id @default(uuid()) accountId String account Account @relation(fields: [accountId], references: [id]) date DateTime description String amount Decimal @db.Decimal(10, 2) category String? status TransactionStatus @default(CLEARED) type TransactionType @default(UNSPECIFIED) notes String? tags String? // Comma-separated values for tags createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([accountId]) @@index([date]) @@index([category]) @@map("transactions") } enum AccountType { CHECKING SAVINGS CREDIT_CARD INVESTMENT OTHER } enum AccountStatus { ACTIVE CLOSED } enum TransactionStatus { PENDING CLEARED } enum TransactionType { DEPOSIT WITHDRAWAL TRANSFER UNSPECIFIED }