from django.contrib import admin
from .models import Folder, Document, DocumentVersion


@admin.register(Folder)
class FolderAdmin(admin.ModelAdmin):
    """Admin configuration for Folder model"""
    
    list_display = ['name', 'parent', 'is_public', 'created_by', 'created_at', 'updated_at']
    list_filter = ['is_public', 'created_at', 'updated_at']
    search_fields = ['name', 'description']
    readonly_fields = ['created_at', 'updated_at']
    filter_horizontal = ['allowed_users']
    
    fieldsets = (
        ('Información Básica', {
            'fields': ('name', 'description', 'parent')
        }),
        ('Control de Acceso', {
            'fields': ('is_public', 'allowed_users')
        }),
        ('Metadata', {
            'fields': ('created_by', 'created_at', 'updated_by', 'updated_at')
        }),
    )


@admin.register(Document)
class DocumentAdmin(admin.ModelAdmin):
    """Admin configuration for Document model"""
    
    list_display = ['name', 'folder', 'file_type', 'file_size', 'is_public', 'created_by', 'created_at', 'updated_at']
    list_filter = ['is_public', 'file_type', 'created_at', 'updated_at']
    search_fields = ['name', 'description']
    readonly_fields = ['created_at', 'updated_at', 'file_size', 'file_type']
    filter_horizontal = ['allowed_users']
    
    fieldsets = (
        ('Información Básica', {
            'fields': ('name', 'description', 'file', 'folder')
        }),
        ('Metadata del Archivo', {
            'fields': ('file_size', 'file_type')
        }),
        ('Control de Acceso', {
            'fields': ('is_public', 'allowed_users')
        }),
        ('Metadata', {
            'fields': ('created_by', 'created_at', 'updated_by', 'updated_at')
        }),
    )


@admin.register(DocumentVersion)
class DocumentVersionAdmin(admin.ModelAdmin):
    """Admin configuration for DocumentVersion model"""
    
    list_display = ['document', 'version_number', 'created_by', 'created_at']
    list_filter = ['created_at']
    search_fields = ['document__name', 'comment']
    readonly_fields = ['created_at', 'version_number']
    
    fieldsets = (
        ('Información de Versión', {
            'fields': ('document', 'version_number', 'file', 'comment')
        }),
        ('Metadata', {
            'fields': ('created_by', 'created_at')
        }),
    )
