3.6 KiB
3.6 KiB
Setrip — Admin Roadmap (Index)
Status implementasi kemampuan admin agar admin dapat mengontrol seluruh aplikasi saat ada insiden, bukan hanya read-only dashboard.
Prinsip: admin adalah safety net terakhir saat sistem otomatis gagal atau ada bad actor. Setiap action admin harus auditable (siapa, kapan, alasan), idempotent, dan terbatas hanya untuk admin yang terdaftar di
ADMIN_EMAILS.
Baseline (yang BISA admin lakukan sekarang)
| Area | Fungsi | File |
|---|---|---|
| Dashboard | View count: verifikasi PENDING, refund per status, payout per status | app/admin/page.tsx |
| Trips | List + search + detail; force-cancel dengan auto-refund (admin intervention) | app/admin/trips/ |
| Bookings detail | Timeline lintas Payment + Refund + Payout, raw callback viewer, Midtrans reconcile | app/admin/bookings/[id]/page.tsx |
| Verifikasi KYC | Approve / Reject organizer (KTP, liveness, bank) | app/admin/verifications/page.tsx |
| Refund | Create manual, approve, reject, mark SUCCEEDED, mark FAILED + link ke booking timeline | app/admin/refunds/page.tsx |
| Payout | View per status, mark PAID setelah transfer manual + link ke booking timeline | app/admin/payouts/page.tsx |
Auth admin: env ADMIN_EMAILS → cek di lib/admin.ts, dipassing ke session via lib/auth.ts.
Roadmap per area
| Roadmap | Prioritas | Status | File |
|---|---|---|---|
| Trip Operations (search, view, cancel manual) | 🔴 HIGH | ✅ Delivered | docs/archive/ADMIN_TRIP_OPS_ROADMAP.md |
| Payment Operations (booking detail, reconcile, dispute) | 🔴 HIGH | ✅ Delivered | docs/archive/ADMIN_PAYMENT_OPS_ROADMAP.md |
| Audit & Investigation (search, filter, export) | 🔴 HIGH | ⏳ 0% | ADMIN_AUDIT_ROADMAP.md |
| User Management (search, suspend/ban) | 🟡 MEDIUM | ⏳ 0% | ADMIN_USER_MGMT_ROADMAP.md |
| Verification (reopen, re-upload request) | 🟡 MEDIUM | ⏳ 0% | ADMIN_VERIFICATION_ROADMAP.md |
| System Health (cron monitor, stale state alerts) | 🟡 MEDIUM | ⏳ 0% | ADMIN_SYSTEM_HEALTH_ROADMAP.md |
Legend status: ⏳ belum mulai · 🚧 partial · ✅ selesai (lihat archive untuk detail delivery)
Iterasi berikutnya (sisa HIGH + MEDIUM)
Setelah Trip Ops + Payment Ops, urutan berikutnya:
- Audit & Investigation (HIGH) — filter date range, search global, CSV export. Penting untuk compliance & investigasi dispute.
- User Management (MEDIUM) — search + suspend/ban. Butuh schema change (
User.suspended). - System Health (MEDIUM) — cron monitor + stale state alerts. Butuh model baru (
CronRun). - Verification (MEDIUM) — reopen REJECTED + re-upload request. Edge case rare tapi kecil scope.
Tindakan manual setelah deploy
Untuk versi yang berisi delivery Trip Ops + Payment Ops:
# Apply migration baru (add_trip_admin_cancel)
npx prisma migrate deploy
# Restart Next.js / PM2 supaya Prisma client baru ter-load
pm2 restart setrip --update-env
Brief admin tentang dua kapabilitas baru:
- Force-cancel trip di
/admin/trips/[id]— pakai saat organizer unreachable / dispute, reason wajib min 10 karakter. - Reconcile Midtrans di
/admin/bookings/[id]— pakai saat peserta lapor "sudah bayar tapi status belum update". Idempotent, aman diulang.