Finanzuebersicht Stichtage und Spenden ergaenzen
All checks were successful
CI / Build and Deploy (push) Successful in 3m11s

This commit is contained in:
jan
2026-05-11 23:41:07 +02:00
parent c93616f09e
commit c738b35d06
14 changed files with 884 additions and 62 deletions

View File

@@ -31,6 +31,11 @@ enum ExpenseRecurrence {
MONTHLY
}
enum CutoffPhase {
PRE
POST
}
enum BudgetReleaseNotifyTarget {
ALL_GROUP_USERS
GROUP_MEMBERS_ONLY
@@ -50,6 +55,7 @@ model User {
createdExpenses Expense[] @relation("ExpenseCreator")
approvals Approval[]
uploadedDocuments ExpenseDocument[]
createdDonations Donation[] @relation("DonationCreator")
auditLogs AuditLog[]
pushSubscriptions PushSubscription[]
createdAt DateTime @default(now()) @map("created_at")
@@ -78,8 +84,11 @@ model AccountingPeriod {
startsAt DateTime @map("starts_at")
endsAt DateTime @map("ends_at")
isCurrent Boolean @default(false) @map("is_current")
cutoffName String @default("Open Air") @map("cutoff_name")
cutoffDate DateTime? @map("cutoff_date")
budgets Budget[]
expenses Expense[]
donations Donation[]
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@ -139,6 +148,7 @@ model Expense {
approvalStatus ApprovalStatus @default(PENDING) @map("approval_status")
recurrence ExpenseRecurrence @default(NONE)
recurrenceStartAt DateTime? @map("recurrence_start_at")
cutoffPhase CutoffPhase @default(PRE) @map("cutoff_phase")
paidAt DateTime? @map("paid_at")
documentedAt DateTime? @map("documented_at")
createdAt DateTime @default(now()) @map("created_at")
@@ -149,10 +159,32 @@ model Expense {
period AccountingPeriod @relation(fields: [periodId], references: [id], onDelete: Restrict)
approvals Approval[]
documents ExpenseDocument[]
donations Donation[]
@@map("expenses")
}
model Donation {
id String @id @default(cuid())
title String
description String?
amount Decimal @db.Decimal(10, 2)
donatedAt DateTime @map("donated_at")
periodId String @map("period_id")
expenseId String? @map("expense_id")
creatorId String @map("creator_id")
period AccountingPeriod @relation(fields: [periodId], references: [id], onDelete: Restrict)
expense Expense? @relation(fields: [expenseId], references: [id], onDelete: SetNull)
creator User @relation("DonationCreator", fields: [creatorId], references: [id], onDelete: Restrict)
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@index([periodId])
@@index([expenseId])
@@index([creatorId])
@@map("donations")
}
model ExpenseDocument {
id String @id @default(cuid())
expenseId String @map("expense_id")