# common/admin.py

from django.contrib import admin
from .models import (
    Customer, Airline, Flight, Booking, 
    VisaRequest, Wallet, WalletTransaction, MoneyTransaction
)

@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
    list_display = ['name', 'passport_no', 'phone', 'total_spent']
    search_fields = ['name', 'passport_no', 'phone']
    list_filter = ['gender']

@admin.register(Airline)
class AirlineAdmin(admin.ModelAdmin):
    list_display = ['code', 'name', 'commission', 'balance']
    search_fields = ['name', 'code']

@admin.register(Flight)
class FlightAdmin(admin.ModelAdmin):
    list_display = ['flight_no', 'airline', 'origin', 'destination', 'departure_date', 'price', 'available_seats']
    list_filter = ['airline', 'origin', 'destination', 'departure_date']
    search_fields = ['flight_no']

@admin.register(Booking)
class BookingAdmin(admin.ModelAdmin):
    list_display = ['booking_ref', 'customer', 'route_display', 'travel_date', 'amount', 'status', 'source']
    list_filter = ['status', 'source', 'travel_date']
    search_fields = ['booking_ref', 'customer__name', 'passenger_name']
    readonly_fields = ['booking_ref', 'created_at']

@admin.register(VisaRequest)
class VisaRequestAdmin(admin.ModelAdmin):
    list_display = ['visa_ref', 'customer', 'country', 'visa_type', 'status', 'fee']
    list_filter = ['country', 'visa_type', 'status', 'category']
    search_fields = ['visa_ref', 'customer__name', 'passport_no']

@admin.register(Wallet)
class WalletAdmin(admin.ModelAdmin):
    list_display = ['customer', 'balance', 'total_deposited', 'total_withdrawn']
    search_fields = ['customer__name']

@admin.register(WalletTransaction)
class WalletTransactionAdmin(admin.ModelAdmin):
    list_display = ['wallet', 'transaction_type', 'amount', 'created_at']
    list_filter = ['transaction_type', 'created_at']

@admin.register(MoneyTransaction)
class MoneyTransactionAdmin(admin.ModelAdmin):
    list_display = ['direction', 'party', 'amount', 'payment_method', 'status', 'transaction_date']
    list_filter = ['direction', 'status', 'transaction_date']