from django.contrib import admin
from .models import Expense, OtherCost, ExpenseDoctor, ExpenseTechnician, ExpenseOtherCost
from doctor.models import Doctor, Technician  # Import the models

# Inline for ExpenseDoctor
class ExpenseDoctorInline(admin.TabularInline):
    model = ExpenseDoctor
    extra = 1
    autocomplete_fields = ['doctor']

# Inline for ExpenseTechnician
class ExpenseTechnicianInline(admin.TabularInline):
    model = ExpenseTechnician
    extra = 1
    autocomplete_fields = ['technician']

# Inline for ExpenseOtherCost
class ExpenseOtherCostInline(admin.TabularInline):
    model = ExpenseOtherCost
    extra = 1
    autocomplete_fields = ['other_cost']

# Admin for Expense
@admin.register(Expense)
class ExpenseAdmin(admin.ModelAdmin):
    list_display = ['id', 'date', 'fixed_cost_dollar', 'total_dollar']
    list_filter = ['date']
    search_fields = ['date']
    inlines = [ExpenseDoctorInline, ExpenseTechnicianInline, ExpenseOtherCostInline]
    readonly_fields = ['total_dollar']

    def total_dollar(self, obj):
        return obj.total_dollar
    total_dollar.short_description = 'Total Dollar'

# Admin for OtherCost
@admin.register(OtherCost)
class OtherCostAdmin(admin.ModelAdmin):
    list_display = ['id', 'description', 'cost_dollar']
    search_fields = ['description']

# Admin for ExpenseDoctor
@admin.register(ExpenseDoctor)
class ExpenseDoctorAdmin(admin.ModelAdmin):
    list_display = ['id', 'expense', 'doctor', 'cost_dollar']
    autocomplete_fields = ['expense', 'doctor']
    search_fields = ['expense__date', 'doctor__name']

# Admin for ExpenseTechnician
@admin.register(ExpenseTechnician)
class ExpenseTechnicianAdmin(admin.ModelAdmin):
    list_display = ['id', 'expense', 'technician', 'cost_dollar']
    autocomplete_fields = ['expense', 'technician']
    search_fields = ['expense__date', 'technician__name']

# Admin for ExpenseOtherCost
@admin.register(ExpenseOtherCost)
class ExpenseOtherCostAdmin(admin.ModelAdmin):
    list_display = ['id', 'expense', 'other_cost', 'description', 'cost_dollar']
    autocomplete_fields = ['expense', 'other_cost']
    search_fields = ['expense__date', 'description']

