from django.contrib import admin
from .models import AssetCategory, Asset, AssetSpecification


@admin.register(AssetCategory)
class AssetCategoryAdmin(admin.ModelAdmin):
    list_display = (
        'code',
        'name',
        'is_active',
        'created_at',
    )

    list_filter = (
        'is_active',
    )

    search_fields = (
        'code',
        'name',
    )

    ordering = (
        'name',
    )


class AssetSpecificationInline(admin.TabularInline):
    model = AssetSpecification
    extra = 3
    fields = (
        'key',
        'value',
    )


@admin.register(Asset)
class AssetAdmin(admin.ModelAdmin):
    list_display = (
        'asset_code',
        'name',
        'category',
        'location',
        'brand',
        'model',
        'condition',
        'status',
        'quantity',
    )

    list_filter = (
        'category',
        'condition',
        'status',
        'location',
    )

    search_fields = (
        'asset_code',
        'name',
        'brand',
        'model',
        'serial_number',
    )

    ordering = (
        'asset_code',
    )

    inlines = (
        AssetSpecificationInline,
    )


@admin.register(AssetSpecification)
class AssetSpecificationAdmin(admin.ModelAdmin):
    list_display = (
        'asset',
        'key',
        'value',
        'created_at',
    )

    list_filter = (
        'key',
    )

    search_fields = (
        'asset__asset_code',
        'asset__name',
        'key',
        'value',
    )

    ordering = (
        'asset',
        'key',
    )