# 📋 Admin Document Management System

## Overview
Sistem manajemen dokumen upload pengguna untuk FastRentCar. Admin dapat mengelola, memverifikasi, dan menolak dokumen seperti KTP, SIM, dan bukti pembayaran transfer.

## 🎯 Fitur Utama

### 1. **Manajemen Dokumen (KTP, SIM, dll)**
- ✅ Melihat daftar semua dokumen yang diupload pengguna
- ✅ Filter berdasarkan:
  - Tipe dokumen (KTP, SIM, Paspor, Lainnya)
  - Status verifikasi (Pending, Terverifikasi, Ditolak)
  - Pencarian pengguna (nama, email, telepon)
- ✅ Melihat detail dokumen dengan pratinjau gambar
- ✅ Verifikasi dokumen dengan catatan
- ✅ Tolak dokumen dengan alasan
- ✅ Download file dokumen
- ✅ Status real-time

### 2. **Manajemen Bukti Transfer**
- ✅ Melihat daftar semua bukti pembayaran transfer
- ✅ Filter berdasarkan:
  - Status (Pending, Terverifikasi, Ditolak)
  - Pencarian (Order ID, User, Mobil)
- ✅ Melihat detail bukti transfer dengan gambar
- ✅ Verifikasi pembayaran (mengubah status menjadi "paid")
- ✅ Tolak pembayaran dengan alasan
- ✅ Download bukti pembayaran
- ✅ Otomatis update status rental saat pembayaran diverifikasi

### 3. **Statistik & Dashboard**
- 📊 Total dokumen upload
- 📊 Dokumen menunggu verifikasi
- 📊 Dokumen terverifikasi
- 📊 Dokumen ditolak
- 📊 Total bukti transfer
- 📊 Bukti transfer menunggu verifikasi
- 📊 Bukti transfer terverifikasi
- 📊 Distribusi dokumen berdasarkan tipe
- 🔗 Quick action links ke halaman verifikasi

## 📁 File Structure

```
app/Http/Controllers/
├── AdminDocumentController.php          # Controller utama

resources/views/admin/
├── documents/
│   ├── index.blade.php                 # Daftar dokumen
│   ├── show.blade.php                  # Detail dokumen
│   ├── payment-proofs.blade.php        # Daftar bukti transfer
│   ├── payment-proof-detail.blade.php  # Detail bukti transfer
│   └── statistics.blade.php            # Dashboard statistik

resources/views/admin/layouts/
└── app.blade.php                       # Layout dengan sidebar (updated)
```

## 🛣️ Routes

### Document Management Routes
```
GET  /admin/documents                   # admin.documents.index
GET  /admin/documents/{id}              # admin.documents.show
POST /admin/documents/{id}/verify       # admin.documents.verify
POST /admin/documents/{id}/reject       # admin.documents.reject
GET  /admin/documents/{id}/download     # admin.documents.download
```

### Payment Proof Routes
```
GET  /admin/documents/proofs/list       # admin.documents.payment-proofs
GET  /admin/documents/proofs/{id}       # admin.documents.show-payment-proof
POST /admin/documents/proofs/{id}/confirm     # admin.documents.confirm-payment-proof
POST /admin/documents/proofs/{id}/reject      # admin.documents.reject-payment-proof
GET  /admin/documents/proofs/{id}/download    # admin.documents.download-payment-proof
```

### Statistics Route
```
GET  /admin/documents/stats             # admin.documents.statistics
```

## 🔐 Authorization

Semua routes dilindungi dengan middleware:
- `auth` - Pengguna harus login
- `admin` - Pengguna harus memiliki role admin

## 📝 Usage Examples

### Access Admin Documents Menu
```
URL: http://localhost/admin
Navigation: Sidebar > Dokumen Upload
```

### Verify a Document
1. Klik menu "Dokumen Upload" di sidebar
2. Klik tombol "Lihat" pada dokumen yang ingin diverifikasi
3. Review gambar dokumen
4. Klik "Terima & Verifikasi" atau "Tolak Dokumen"
5. Tambahkan catatan/alasan jika diperlukan
6. Klik konfirmasi

### Verify Payment Proof
1. Klik menu "Bukti Transfer" di sidebar
2. Klik tombol "Lihat" pada bukti yang ingin diverifikasi
3. Review gambar bukti pembayaran
4. Klik "Terima Pembayaran" atau "Tolak Pembayaran"
5. Tambahkan alasan jika menolak
6. Sistem otomatis akan update status pembayaran dan rental

## 🎨 UI/UX Features

- **Modern Design**: Interface menggunakan design system yang konsisten
- **Responsive**: Responsive design untuk desktop dan mobile
- **Visual Feedback**: Status badge dengan warna yang jelas:
  - 🟢 Terverifikasi (hijau)
  - 🟡 Pending (kuning)
  - 🔴 Ditolak (merah)
- **Quick Actions**: Tombol aksi cepat untuk verifikasi pending items
- **Statistics Dashboard**: Visualisasi data dengan cards dan chart
- **Pagination**: Pagination untuk navigasi data besar

## 📊 Database Relations

### Document Model
```php
- user_id (FK to users)
- document_type (ktp, sim, passport, other)
- file_path
- status (pending, verified, rejected)
- notes
- timestamps
```

### Payment Model
```php
- payment_method = 'transfer'
- payment_proof (file path)
- status (pending, paid, failed)
- amount
- rental_id (FK)
- timestamps
```

## 🔄 Workflow

### Document Verification Flow
```
Upload → Pending → Admin Review → Verified/Rejected
```

### Payment Proof Verification Flow
```
Upload → Pending → Admin Review → Paid (rental confirmed) / Failed (user re-upload)
```

## ✨ Key Features

1. **Bulk View**: Melihat semua dokumen dalam satu tempat
2. **Advanced Filtering**: Filter by type, status, user
3. **Search**: Search by user name, email, phone
4. **Document Preview**: Pratinjau langsung di browser
5. **Download**: Download dokumen original
6. **Status Tracking**: Real-time status dokumen
7. **Notes/Reasons**: Catatan admin saat verifikasi
8. **Audit Trail**: Timestamp otomatis
9. **Quick Stats**: Dashboard statistik lengkap
10. **One-Click Actions**: Tombol aksi cepat

## 🚀 Performance

- **Pagination**: 20 items per halaman untuk optimal loading
- **Eager Loading**: Relations di-load dengan `with()` untuk mengurangi queries
- **Caching**: Routes di-cache untuk performa lebih baik
- **Optimized Queries**: Minimal database queries dengan select specific fields

## 🔍 Admin Checks

Sebelum verifikasi dokumen, admin bisa:
- ✅ Lihat identitas pengguna (nama, email, telepon)
- ✅ Lihat detail dokumen (tipe, tanggal upload)
- ✅ Preview gambar dokumen
- ✅ Check rental details (untuk payment proof)
- ✅ Lihat history (notes sebelumnya jika ada)

## 🛡️ Security

- Middleware `admin` memastikan hanya admin yang akses
- File download dilindungi dengan authorization
- CSRF protection pada semua forms
- Input validation pada semua POST requests
- Soft delete ready (can be added)

## 📚 Navigation

**Admin Sidebar Menu:**
```
Dashboard
├── Daftar Mobil
├── Daftar Penyewa
├── Pengembalian
├── Dokumen Upload (NEW)
├── Bukti Transfer (NEW)
├── Maintenance
└── Laporan
```

## 🎯 Next Steps (Potential Enhancements)

- 📧 Email notifications untuk verifikasi
- 📦 Bulk actions (verify/reject multiple)
- 📈 Advanced analytics dan reports
- 🔔 Admin notifications for pending approvals
- 📱 Mobile app integration
- 🎯 Document template validation
- 🤖 AI-powered document verification (OCR)
- 📝 Document history/changelog

## 🆘 Troubleshooting

### Routes tidak muncul
```
php artisan route:cache
php artisan route:clear
```

### Views tidak found
```
php artisan view:cache
php artisan view:clear
```

### Sidebar menu tidak muncul
Check: `resources/views/admin/layouts/app.blade.php` sidebar section

### Images tidak display
Check: `storage_path()` permissions and `storage/app/` structure

## 📞 Support

Untuk bantuan atau report issues, hubungi admin atau check logs di:
```
storage/logs/laravel.log
```

---

**Created**: 2026-06-09
**Status**: Ready for Production ✅
**Last Updated**: 2026-06-09
