from django.contrib import admin

from .models import LedgerAccount, LedgerEntry, LedgerJournal


@admin.register(LedgerAccount)
class LedgerAccountAdmin(admin.ModelAdmin):
    list_display = ("code", "name", "type", "is_active")
    list_filter = ("type", "is_active")
    search_fields = ("code", "name")


class LedgerEntryInline(admin.TabularInline):
    model = LedgerEntry
    extra = 0
    can_delete = False
    readonly_fields = ("account", "debit", "credit", "memo", "created_at")


@admin.register(LedgerJournal)
class LedgerJournalAdmin(admin.ModelAdmin):
    list_display = ("reference", "description", "deal", "created_by", "created_at")
    search_fields = ("reference", "description", "idempotency_key")
    list_filter = ("created_at",)
    inlines = [LedgerEntryInline]
    readonly_fields = ("reference", "description", "deal", "idempotency_key", "created_by", "created_at")
