from django.contrib import admin

from apps.rims.fleet.models import MaintenanceRecord, TripLog, Vehicle, VehicleBooking


@admin.register(Vehicle)
class VehicleAdmin(admin.ModelAdmin):
    list_display = ("registration", "make", "model", "year", "status", "assigned_driver", "insurance_expiry")
    list_filter = ("status", "fuel_type")
    search_fields = ("registration", "make", "model")


@admin.register(VehicleBooking)
class VehicleBookingAdmin(admin.ModelAdmin):
    list_display = ("vehicle", "requested_by", "destination", "departure_datetime", "status")
    list_filter = ("status",)
    search_fields = ("destination", "purpose", "requested_by__email")


@admin.register(TripLog)
class TripLogAdmin(admin.ModelAdmin):
    list_display = ("booking", "driver", "odometer_start", "odometer_end", "distance_km")
    search_fields = ("driver__email",)

    @admin.display(description="Distance (km)")
    def distance_km(self, obj):
        return obj.distance_km


@admin.register(MaintenanceRecord)
class MaintenanceRecordAdmin(admin.ModelAdmin):
    list_display = ("vehicle", "maintenance_type", "date", "cost", "service_provider", "next_due_date")
    list_filter = ("maintenance_type",)
    search_fields = ("vehicle__registration", "service_provider")
