from django.contrib import admin

from .models import WalletAccount, LedgerEntry, Payment, Invoice, WithdrawalRequest


@admin.register(WalletAccount)
class WalletAccountAdmin(admin.ModelAdmin):
    list_display = ('user', 'balance', 'currency', 'updated_at')
    search_fields = ('user__email', 'user__username')


@admin.register(LedgerEntry)
class LedgerEntryAdmin(admin.ModelAdmin):
    list_display = ('user', 'amount', 'entry_type', 'trip', 'created_at')
    list_filter = ('entry_type',)
    raw_id_fields = ('user', 'trip', 'payment')


@admin.register(Payment)
class PaymentAdmin(admin.ModelAdmin):
    list_display = ('id', 'trip', 'method', 'status', 'amount', 'payer', 'payee', 'created_at')
    list_filter = ('method', 'status')
    raw_id_fields = ('trip', 'payer', 'payee')


@admin.register(Invoice)
class InvoiceAdmin(admin.ModelAdmin):
    list_display = ('number', 'trip', 'shipper', 'total', 'status', 'issued_at')
    raw_id_fields = ('trip', 'shipper', 'payment')


@admin.register(WithdrawalRequest)
class WithdrawalRequestAdmin(admin.ModelAdmin):
    list_display = ('user', 'amount', 'status', 'created_at')
    list_filter = ('status',)
