"""
Document Control Service Admin.
"""
from django.contrib import admin

from .models import (
    DocumentCategory,
    Document,
    DocumentVersion,
    DocumentApproval,
    DocumentAccess,
    DocumentAuditLog,
)


@admin.register(DocumentCategory)
class DocumentCategoryAdmin(admin.ModelAdmin):
    list_display = ('code', 'name', 'parent', 'is_active', 'sort_order')
    list_filter = ('is_active',)
    search_fields = ('name', 'code')


@admin.register(Document)
class DocumentAdmin(admin.ModelAdmin):
    list_display = ('code', 'title', 'category', 'status', 'current_version', 'owner', 'created_at')
    list_filter = ('status', 'category')
    search_fields = ('title', 'code')
    readonly_fields = ('created_at', 'updated_at')


@admin.register(DocumentVersion)
class DocumentVersionAdmin(admin.ModelAdmin):
    list_display = ('document', 'version_number', 'file_name', 'is_current', 'created_by', 'created_at')
    list_filter = ('is_current',)


@admin.register(DocumentApproval)
class DocumentApprovalAdmin(admin.ModelAdmin):
    list_display = ('document', 'version', 'approver', 'status', 'approved_at')
    list_filter = ('status',)


@admin.register(DocumentAccess)
class DocumentAccessAdmin(admin.ModelAdmin):
    list_display = ('document', 'access_type', 'user', 'permission_level', 'granted_by')
    list_filter = ('access_type', 'permission_level')


@admin.register(DocumentAuditLog)
class DocumentAuditLogAdmin(admin.ModelAdmin):
    list_display = ('document', 'action', 'user', 'ip_address', 'created_at')
    list_filter = ('action',)
    readonly_fields = ('created_at',)
