admin roadmap trips ops and payment ops
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
-- AlterTable: tambah jejak admin yang membatalkan trip (Phase 2 admin trip ops).
|
||||
-- `cancelledByAdminId` nullable — diisi hanya saat actor cancel = ADMIN
|
||||
-- (organizer cancel tidak mengisi field ini).
|
||||
ALTER TABLE "Trip" ADD COLUMN "cancelledByAdminId" TEXT;
|
||||
ALTER TABLE "Trip" ADD COLUMN "cancelledReason" TEXT;
|
||||
|
||||
-- AddForeignKey: organizer/admin cancel terjaga referensinya kalau admin
|
||||
-- nantinya dihapus, set NULL supaya history Trip tidak rusak.
|
||||
ALTER TABLE "Trip" ADD CONSTRAINT "Trip_cancelledByAdminId_fkey"
|
||||
FOREIGN KEY ("cancelledByAdminId") REFERENCES "User"("id")
|
||||
ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
@@ -39,6 +39,9 @@ model User {
|
||||
/// Payout yang ditandai admin sebagai PAID/CANCELLED oleh user ini.
|
||||
processedPayouts Payout[] @relation("PayoutProcessor")
|
||||
|
||||
/// Trip yang dibatalkan admin ini lewat panel admin (intervensi).
|
||||
adminCancelledTrips Trip[] @relation("TripCancelledByAdmin")
|
||||
|
||||
profile UserProfile?
|
||||
}
|
||||
|
||||
@@ -157,6 +160,12 @@ model Trip {
|
||||
/// Ritme/energi trip — dipakai untuk matching dengan vibe user.
|
||||
vibe Vibe?
|
||||
status TripStatus @default(OPEN)
|
||||
/// Admin yang membatalkan trip via panel admin (intervensi). NULL kalau
|
||||
/// organizer yang cancel sendiri atau trip tidak dibatalkan.
|
||||
cancelledByAdminId String?
|
||||
cancelledByAdmin User? @relation("TripCancelledByAdmin", fields: [cancelledByAdminId], references: [id], onDelete: SetNull)
|
||||
/// Alasan admin membatalkan trip — wajib diisi saat admin cancel.
|
||||
cancelledReason String?
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
|
||||
Reference in New Issue
Block a user