Finanzuebersicht Stichtage und Spenden ergaenzen
All checks were successful
CI / Build and Deploy (push) Successful in 3m11s
All checks were successful
CI / Build and Deploy (push) Successful in 3m11s
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
CREATE TYPE "CutoffPhase" AS ENUM ('PRE', 'POST');
|
||||
|
||||
ALTER TABLE "accounting_periods"
|
||||
ADD COLUMN "cutoff_name" TEXT NOT NULL DEFAULT 'Open Air',
|
||||
ADD COLUMN "cutoff_date" TIMESTAMP(3);
|
||||
|
||||
ALTER TABLE "expenses"
|
||||
ADD COLUMN "cutoff_phase" "CutoffPhase" NOT NULL DEFAULT 'PRE';
|
||||
|
||||
CREATE TABLE "donations" (
|
||||
"id" TEXT NOT NULL,
|
||||
"title" TEXT NOT NULL,
|
||||
"description" TEXT,
|
||||
"amount" DECIMAL(10,2) NOT NULL,
|
||||
"donated_at" TIMESTAMP(3) NOT NULL,
|
||||
"period_id" TEXT NOT NULL,
|
||||
"expense_id" TEXT,
|
||||
"creator_id" TEXT NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "donations_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE INDEX "donations_period_id_idx" ON "donations"("period_id");
|
||||
CREATE INDEX "donations_expense_id_idx" ON "donations"("expense_id");
|
||||
CREATE INDEX "donations_creator_id_idx" ON "donations"("creator_id");
|
||||
|
||||
ALTER TABLE "donations"
|
||||
ADD CONSTRAINT "donations_period_id_fkey"
|
||||
FOREIGN KEY ("period_id") REFERENCES "accounting_periods"("id")
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE "donations"
|
||||
ADD CONSTRAINT "donations_expense_id_fkey"
|
||||
FOREIGN KEY ("expense_id") REFERENCES "expenses"("id")
|
||||
ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE "donations"
|
||||
ADD CONSTRAINT "donations_creator_id_fkey"
|
||||
FOREIGN KEY ("creator_id") REFERENCES "users"("id")
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user