from django.contrib import admin
from .models import Comuna, Persona, Contacto, Feriado

class ContactoInline(admin.TabularInline):
    model = Contacto
    extra = 1
    fields = ('nombre', 'cargo', 'telefono', 'email')

@admin.register(Comuna)
class ComunaAdmin(admin.ModelAdmin):
    list_display = ('codigo', 'nombre', 'total_personas')
    search_fields = ('codigo', 'nombre')
    
    def total_personas(self, obj):
        return obj.persona_set.count()
    total_personas.short_description = "Personas registradas"

@admin.register(Persona)
class PersonaAdmin(admin.ModelAdmin):
    list_display = (
        'rut',
        'razonSocial',
        'tipo',
        'comuna',
        'activo',
        'bloqueado'
    )
    list_filter = ('activo', 'bloqueado', 'cliente', 'proveedor', 'comuna')
    search_fields = ('rut', 'razonSocial', 'nombreFantasia', 'email')
    inlines = [ContactoInline]
    autocomplete_fields = ['comuna']
    
    def tipo(self, obj):
        tipos = []
        if obj.cliente: tipos.append("Cliente")
        if obj.proveedor: tipos.append("Proveedor")
        return ", ".join(tipos) or "N/A"
    tipo.short_description = 'Tipos'

@admin.register(Contacto)
class ContactoAdmin(admin.ModelAdmin):
    list_display = ('nombre', 'cargo', 'persona', 'telefono', 'email')
    search_fields = ('nombre', 'persona__razonSocial', 'persona__rut')
    autocomplete_fields = ['persona']



from django.contrib import admin
from .models import Region, Comuna

class ComunaInline(admin.TabularInline):  # O admin.StackedInline
    model = Comuna
    extra = 1

@admin.register(Region)
class RegionAdmin(admin.ModelAdmin):
    list_display = ('codigo', 'nombre', 'es_region')
    search_fields = ('codigo', 'nombre')
    inlines = [ComunaInline]
    
    
@admin.register(Feriado)
class FeriadoAdmin(admin.ModelAdmin):
    list_display = ('nombre', 'fecha')
    search_fields = ('nombre',)
    list_filter = ('fecha',)
    ordering = ('fecha',)
