from django.contrib import admin
from .models import (
    ClientAccount,
    ClientPortalUser,
    ClientTransaction,
    TrackingEvent,
)


@admin.register(ClientAccount)
class ClientAccountAdmin(admin.ModelAdmin):
    list_display = ("name", "email", "is_active", "created_at")
    list_filter = ("is_active", "created_at")
    search_fields = ("name", "email")


@admin.register(ClientPortalUser)
class ClientPortalUserAdmin(admin.ModelAdmin):
    list_display = ("client_account", "user", "role", "is_active", "created_at")
    list_filter = ("role", "is_active", "created_at")
    search_fields = ("client_account__name", "user__email", "user__first_name", "user__last_name")


@admin.register(ClientTransaction)
class ClientTransactionAdmin(admin.ModelAdmin):
    list_display = (
        "client_account",
        "transaction_type",
        "transaction_ref",
        "status",
        "created_at",
    )
    list_filter = ("status", "transaction_type", "created_at")
    search_fields = ("transaction_ref", "title", "client_account__name")


@admin.register(TrackingEvent)
class TrackingEventAdmin(admin.ModelAdmin):
    list_display = ("transaction", "event_type", "location", "event_date", "created_at")
    list_filter = ("event_type", "created_at")
    search_fields = ("transaction__transaction_ref", "description")
    date_hierarchy = "event_date"
