from django.contrib import admin

from .models import Account, Fund, Transaction, JournalEntry, JournalLine


@admin.register(Account)
class AccountAdmin(admin.ModelAdmin):
    list_display = ["code", "name", "type", "normal_balance", "is_active"]
    list_filter = ["type", "normal_balance", "is_active"]
    search_fields = ["code", "name"]


@admin.register(Fund)
class FundAdmin(admin.ModelAdmin):
    list_display = ["fund_id", "name", "fund_type", "award_amount", "received_amount"]
    list_filter = ["fund_type"]
    search_fields = ["fund_id", "name", "donor_name"]


@admin.register(Transaction)
class TransactionAdmin(admin.ModelAdmin):
    list_display = ["transaction_id", "date", "transaction_type", "status", "net_expense_idr"]
    list_filter = ["transaction_type", "status"]
    search_fields = ["transaction_id", "description"]


class JournalLineInline(admin.TabularInline):
    model = JournalLine
    extra = 0


@admin.register(JournalEntry)
class JournalEntryAdmin(admin.ModelAdmin):
    list_display = ["journal_no", "date", "reference", "status"]
    list_filter = ["status"]
    search_fields = ["journal_no", "reference", "description"]
    inlines = [JournalLineInline]
