3.7 KiB
3.7 KiB
Dokumentasi Fondasi Backend Rental
Bagian ini menjelaskan struktur backend inti yang sudah dibuat untuk platform rental kendaraan multi-rental, e-booking, e-commerce, dan CRM.
Tujuan Fondasi Backend
- Menyediakan struktur database inti yang rapi dan siap dikembangkan.
- Menjaga relasi data antar customer, admin rental, super admin, rental company, kendaraan, booking, dan pembayaran.
- Menyimpan data transaksi dengan struktur yang mudah dipakai untuk fitur berikutnya.
Tabel Inti yang Sudah Dibuat
users- Menyimpan akun customer, admin_rental, dan super_admin.
- Sudah mendukung kolom
roledanphone.
rental_companies- Menyimpan data perusahaan rental milik admin rental.
- Menyimpan status verifikasi dari super admin.
vehicles- Menyimpan data kendaraan milik rental company.
vehicle_images- Menyimpan galeri gambar kendaraan.
bookings- Menyimpan transaksi booking customer.
payments- Menyimpan data pembayaran dan proses verifikasi pembayaran.
Relasi Antar Tabel
- Satu admin rental memiliki satu rental company.
- Satu rental company memiliki banyak kendaraan.
- Satu kendaraan memiliki banyak gambar.
- Satu customer memiliki banyak booking.
- Satu booking milik satu customer, satu kendaraan, dan satu rental company.
- Satu booking memiliki satu payment.
- Satu payment diverifikasi oleh satu user admin rental.
- Satu rental company diverifikasi oleh satu user super admin.
Status yang Digunakan
rental_companies.status_verification
pendingapprovedrejected
vehicles.status
activeinactivemaintenance
bookings.booking_status
pendingwaiting_paymentwaiting_verificationconfirmedongoingcompletedcancelled
bookings.payment_status
unpaiduploadedverifiedrejected
payments.payment_status
unpaiduploadedverifiedrejected
File Backend yang Ditambahkan
Model
app/Models/RentalCompany.phpapp/Models/Vehicle.phpapp/Models/VehicleImage.phpapp/Models/Booking.phpapp/Models/Payment.php- Update model user:
app/Models/User.php
Migration
database/migrations/2026_04_21_000004_add_phone_to_users_table.phpdatabase/migrations/2026_04_21_000005_create_rental_companies_table.phpdatabase/migrations/2026_04_21_000006_create_vehicles_table.phpdatabase/migrations/2026_04_21_000007_create_vehicle_images_table.phpdatabase/migrations/2026_04_21_000008_create_bookings_table.phpdatabase/migrations/2026_04_21_000009_create_payments_table.php
Urutan Migration
Urutan migration dibuat agar foreign key aman saat dijalankan:
- Tambah kolom
rolepadausers - Tambah kolom
phonepadausers - Buat
rental_companies - Buat
vehicles - Buat
vehicle_images - Buat
bookings - Buat
payments
Aturan Bisnis yang Sudah Siap Ditangani
- Customer wajib login sebelum booking.
- Satu kendaraan tidak boleh dibooking pada tanggal yang sama.
- Pembayaran diverifikasi oleh admin rental.
- Customer hanya bisa memberi ulasan jika booking sudah completed.
- Rental yang belum diverifikasi tidak boleh tampil di platform customer.
Status Pengerjaan
- Migration sudah dijalankan dan tabel inti sudah terbentuk.
- Model dan relasi dasar sudah disiapkan.
- Fondasi ini siap dipakai untuk controller, service, middleware, dan fitur frontend berikutnya.
Langkah Berikutnya
- Buat seeder data contoh rental company, kendaraan, dan booking.
- Tambahkan validasi booking agar tanggal kendaraan tidak bentrok.
- Tambahkan query/filter agar customer hanya melihat rental company yang sudah approved.
- Bangun controller dan halaman admin/customer di atas struktur data ini.