admin roadmap done, reupload request, submission history, manual override
This commit is contained in:
@@ -73,6 +73,69 @@ export const organizerRepo = {
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Phase 2: minta organizer upload ulang field tertentu. Reset status ke
|
||||
* PENDING tapi sengaja TIDAK clear data lama (organizer ganti field saat
|
||||
* submit ulang via /verify). Service `submitVerification` auto-clear flag.
|
||||
*/
|
||||
async requestReupload(
|
||||
id: string,
|
||||
data: { fields: string[]; note: string }
|
||||
) {
|
||||
return prisma.organizerVerification.update({
|
||||
where: { id },
|
||||
data: {
|
||||
status: "PENDING",
|
||||
reuploadRequested: true,
|
||||
reuploadFields: data.fields,
|
||||
reuploadNote: data.note,
|
||||
// Clear review state supaya muncul lagi di tab PENDING.
|
||||
reviewedById: null,
|
||||
reviewedAt: null,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Phase 4: bikin verifikasi APPROVED tanpa upload KYC (manual override admin).
|
||||
* Placeholder NIK & no image keys — `isManualOverride = true` jadi marker.
|
||||
*/
|
||||
async createManualOverride(input: {
|
||||
userId: string;
|
||||
adminId: string;
|
||||
note: string;
|
||||
fullName: string;
|
||||
nikEncrypted: string;
|
||||
nikHash: string;
|
||||
bankName: string;
|
||||
bankAccountNumber: string;
|
||||
bankAccountName: string;
|
||||
verifiedAt: Date;
|
||||
}) {
|
||||
return prisma.organizerVerification.create({
|
||||
data: {
|
||||
userId: input.userId,
|
||||
fullName: input.fullName,
|
||||
nikEncrypted: input.nikEncrypted,
|
||||
nikHash: input.nikHash,
|
||||
birthDate: new Date("1970-01-01"),
|
||||
address: "(manual override — tidak diisi)",
|
||||
ktpImageKey: "(manual override)",
|
||||
livenessKey: "(manual override)",
|
||||
bankName: input.bankName,
|
||||
bankAccountNumber: input.bankAccountNumber,
|
||||
bankAccountName: input.bankAccountName,
|
||||
status: "APPROVED",
|
||||
verifiedAt: input.verifiedAt,
|
||||
reviewedById: input.adminId,
|
||||
reviewedAt: input.verifiedAt,
|
||||
isManualOverride: true,
|
||||
manualOverrideById: input.adminId,
|
||||
manualOverrideNote: input.note,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Reopen pengajuan REJECTED ke PENDING. Simpan rejection reason lama
|
||||
* sebagai catatan history (di-overwrite kalau di-reject lagi nanti).
|
||||
|
||||
Reference in New Issue
Block a user