admin roadmap done, reupload request, submission history, manual override
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
-- AlterTable: tambah dukungan re-upload request, submission history,
|
||||
-- dan manual override admin untuk OrganizerVerification.
|
||||
--
|
||||
-- Phase 2 (re-upload request): admin minta organizer upload ulang field
|
||||
-- tertentu tanpa drop & recreate row.
|
||||
ALTER TABLE "OrganizerVerification"
|
||||
ADD COLUMN "reuploadRequested" BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN "reuploadFields" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
||||
ADD COLUMN "reuploadNote" TEXT;
|
||||
|
||||
-- Phase 3 (submission history): track jumlah submission + arsip rejection
|
||||
-- reason setiap kali REJECTED (sebelum di-overwrite saat submit ulang).
|
||||
-- `previousRejections` = array string `[{"at": "...", "reason": "..."}]`
|
||||
-- yang di-append manual oleh service saat reject baru terjadi.
|
||||
ALTER TABLE "OrganizerVerification"
|
||||
ADD COLUMN "submissionCount" INTEGER NOT NULL DEFAULT 1,
|
||||
ADD COLUMN "previousRejections" JSONB;
|
||||
|
||||
-- Phase 4 (manual override): flag bahwa verifikasi dibuat admin tanpa
|
||||
-- upload KYC (mis. referral dari partner trusted). Untuk audit transparansi.
|
||||
ALTER TABLE "OrganizerVerification"
|
||||
ADD COLUMN "isManualOverride" BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN "manualOverrideById" TEXT,
|
||||
ADD COLUMN "manualOverrideNote" TEXT;
|
||||
|
||||
-- FK admin yang manual-override — SET NULL kalau admin dihapus.
|
||||
ALTER TABLE "OrganizerVerification" ADD CONSTRAINT
|
||||
"OrganizerVerification_manualOverrideById_fkey"
|
||||
FOREIGN KEY ("manualOverrideById") REFERENCES "User"("id")
|
||||
ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
@@ -38,6 +38,7 @@ model User {
|
||||
|
||||
organizerVerification OrganizerVerification? @relation("OrganizerVerificationOwner")
|
||||
reviewedVerifications OrganizerVerification[] @relation("OrganizerVerificationReviewer")
|
||||
manualOverrideVerifications OrganizerVerification[] @relation("OrganizerVerificationManualOverride")
|
||||
|
||||
reviewedRefunds Refund[] @relation("RefundReviewer")
|
||||
|
||||
@@ -135,6 +136,24 @@ model OrganizerVerification {
|
||||
reviewedBy User? @relation("OrganizerVerificationReviewer", fields: [reviewedById], references: [id])
|
||||
verifiedAt DateTime?
|
||||
|
||||
/// Phase 2: admin minta organizer upload ulang field tertentu. Saat true,
|
||||
/// organizer page /verify menampilkan banner kuning + highlight field
|
||||
/// yang diminta. Auto-clear saat organizer submit ulang.
|
||||
reuploadRequested Boolean @default(false)
|
||||
reuploadFields String[] @default([])
|
||||
reuploadNote String?
|
||||
|
||||
/// Phase 3: jumlah submission ulang + arsip rejection sebelumnya
|
||||
/// (di-append saat REJECTED baru, supaya history tidak ke-overwrite).
|
||||
submissionCount Int @default(1)
|
||||
previousRejections Json?
|
||||
|
||||
/// Phase 4: admin verify manual tanpa upload KYC (mis. partner trusted).
|
||||
isManualOverride Boolean @default(false)
|
||||
manualOverrideById String?
|
||||
manualOverrideBy User? @relation("OrganizerVerificationManualOverride", fields: [manualOverrideById], references: [id], onDelete: SetNull)
|
||||
manualOverrideNote String?
|
||||
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user