﻿from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from .models import Organization, UserProfile, Location, ItemType, Asset, Unit, Custodian


@admin.register(Organization)
class OrganizationAdmin(admin.ModelAdmin):
    list_display = ('name', 'created_at')
    search_fields = ('name',)


@admin.register(Location)
class LocationAdmin(admin.ModelAdmin):
    list_display = ('name', 'description')
    search_fields = ('name',)


@admin.register(ItemType)
class ItemTypeAdmin(admin.ModelAdmin):
    list_display = ('name', 'description')
    search_fields = ('name',)


@admin.register(Unit)
class UnitAdmin(admin.ModelAdmin):
    list_display = ('name', 'abbreviation')
    search_fields = ('name', 'abbreviation')


@admin.register(Custodian)
class CustodianAdmin(admin.ModelAdmin):
    list_display = ('full_name', 'job_title', 'organization', 'status', 'created_by', 'created_at')
    list_filter = ('status', 'organization')
    search_fields = ('first_name', 'last_name', 'job_title', 'phone')


class UserProfileInline(admin.StackedInline):
    model = UserProfile
    can_delete = False


class CustomUserAdmin(UserAdmin):
    inlines = (UserProfileInline,)


@admin.register(Asset)
class AssetAdmin(admin.ModelAdmin):
    list_display = ('name', 'item_type', 'organization', 'location', 'availability', 'custodian', 'unit', 'status', 'created_by', 'created_at', 'received_by', 'received_at')
    list_filter = ('status', 'availability', 'organization', 'item_type', 'location', 'unit', 'custodian')
    search_fields = ('name', 'item_type__name', 'organization__name', 'description', 'custodian__first_name', 'custodian__last_name')
    readonly_fields = ('created_at', 'approved_at', 'received_at')


# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)



