MIF_E31232103/DOKUMENTASI_BACKEND_RENTAL.md

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 role dan phone.
  • 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

  • pending
  • approved
  • rejected

vehicles.status

  • active
  • inactive
  • maintenance

bookings.booking_status

  • pending
  • waiting_payment
  • waiting_verification
  • confirmed
  • ongoing
  • completed
  • cancelled

bookings.payment_status

  • unpaid
  • uploaded
  • verified
  • rejected

payments.payment_status

  • unpaid
  • uploaded
  • verified
  • rejected

File Backend yang Ditambahkan

Model

  • app/Models/RentalCompany.php
  • app/Models/Vehicle.php
  • app/Models/VehicleImage.php
  • app/Models/Booking.php
  • app/Models/Payment.php
  • Update model user: app/Models/User.php

Migration

  • database/migrations/2026_04_21_000004_add_phone_to_users_table.php
  • database/migrations/2026_04_21_000005_create_rental_companies_table.php
  • database/migrations/2026_04_21_000006_create_vehicles_table.php
  • database/migrations/2026_04_21_000007_create_vehicle_images_table.php
  • database/migrations/2026_04_21_000008_create_bookings_table.php
  • database/migrations/2026_04_21_000009_create_payments_table.php

Urutan Migration

Urutan migration dibuat agar foreign key aman saat dijalankan:

  1. Tambah kolom role pada users
  2. Tambah kolom phone pada users
  3. Buat rental_companies
  4. Buat vehicles
  5. Buat vehicle_images
  6. Buat bookings
  7. 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

  1. Buat seeder data contoh rental company, kendaraan, dan booking.
  2. Tambahkan validasi booking agar tanggal kendaraan tidak bentrok.
  3. Tambahkan query/filter agar customer hanya melihat rental company yang sudah approved.
  4. Bangun controller dan halaman admin/customer di atas struktur data ini.