Add balance transactions to user admin panel
Introduces BalanceTransaction model to track per-user balance history (prepayments, refunds, partner credits). Admin can add/delete transactions; current balance is computed as the running sum. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
CREATE TABLE "BalanceTransaction" (
|
||||
"id" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"amount" DECIMAL(10,2) NOT NULL,
|
||||
"description" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT "BalanceTransaction_pkey" PRIMARY KEY ("id"),
|
||||
CONSTRAINT "BalanceTransaction_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX "BalanceTransaction_userId_idx" ON "BalanceTransaction"("userId");
|
||||
+24
-9
@@ -27,15 +27,16 @@ model User {
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
sessions Session[]
|
||||
accounts Account[]
|
||||
enrollments CourseEnrollment[]
|
||||
progress LessonProgress[]
|
||||
submissions HomeworkSubmission[]
|
||||
comments LessonComment[]
|
||||
feedbacks HomeworkFeedback[]
|
||||
accessLogs AccessLog[] @relation("AccessLogUser")
|
||||
adminAccessLogs AccessLog[] @relation("AccessLogAdmin")
|
||||
sessions Session[]
|
||||
accounts Account[]
|
||||
enrollments CourseEnrollment[]
|
||||
progress LessonProgress[]
|
||||
submissions HomeworkSubmission[]
|
||||
comments LessonComment[]
|
||||
feedbacks HomeworkFeedback[]
|
||||
accessLogs AccessLog[] @relation("AccessLogUser")
|
||||
adminAccessLogs AccessLog[] @relation("AccessLogAdmin")
|
||||
balanceTransactions BalanceTransaction[]
|
||||
}
|
||||
|
||||
model Session {
|
||||
@@ -311,6 +312,20 @@ model LessonComment {
|
||||
replies LessonComment[] @relation("CommentReplies")
|
||||
}
|
||||
|
||||
// ─────────────────────────────────────────────
|
||||
// Balance
|
||||
// ─────────────────────────────────────────────
|
||||
|
||||
model BalanceTransaction {
|
||||
id String @id @default(cuid())
|
||||
userId String
|
||||
amount Decimal @db.Decimal(10, 2)
|
||||
description String
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
}
|
||||
|
||||
// ─────────────────────────────────────────────
|
||||
// Platform Settings (key-value store)
|
||||
// ─────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user