from django.contrib import admin

from .models import IstatAuditLog, IstatCredential, IstatSyncHistory


@admin.register(IstatCredential)
class IstatCredentialAdmin(admin.ModelAdmin):
    list_display = (
        "id",
        "structure",
        "username_display",
        "password_masked_display",
        "updated_at",
        "updated_by",
    )
    search_fields = ("structure__name",)
    readonly_fields = (
        "username_encrypted",
        "password_encrypted",
        "created_at",
        "updated_at",
    )

    def username_display(self, obj):
        return obj.username

    username_display.short_description = "Username"

    def password_masked_display(self, obj):
        return obj.masked_password

    password_masked_display.short_description = "Password"


@admin.register(IstatSyncHistory)
class IstatSyncHistoryAdmin(admin.ModelAdmin):
    list_display = (
        "id",
        "structure",
        "status",
        "requested_at",
        "completed_at",
        "triggered_by",
    )
    list_filter = ("status",)
    search_fields = ("structure__name", "message")
    readonly_fields = ("requested_at", "completed_at")


@admin.register(IstatAuditLog)
class IstatAuditLogAdmin(admin.ModelAdmin):
    list_display = ("id", "structure", "action", "actor", "created_at")
    list_filter = ("action",)
    search_fields = ("structure__name", "message", "actor__username")
    readonly_fields = ("created_at",)
