"""
Admin — Especialidades Médicas
================================
Registra os proxy models para que apareçam agrupados
na sua própria secção do admin de Django.
"""

from django.contrib import admin

from .models import (
    CirugiaProxy,
    ControlPrenatalProxy,
    ImagenProxy,
    LaboratorioProxy,
    ProcederProxy,
    ServicioMedicoProxy,
)


class _BaseEspecialidadAdmin(admin.ModelAdmin):
    """Configuração base reutilizável para todos os catálogos."""

    list_display = ("nombre", "servicio_padre", "precio_venta_fmt", "porciento_medico", "is_active")
    search_fields = ("nombre",)
    list_filter = ("is_active", "servicio_padre")
    list_editable = ("is_active",)
    ordering = ("nombre",)

    @admin.display(description="Preço Venda")
    def precio_venta_fmt(self, obj):
        return f"{obj.precio_venta:,.2f} Kz"


@admin.register(ControlPrenatalProxy)
class ControlPrenatalProxyAdmin(_BaseEspecialidadAdmin):
    pass


@admin.register(LaboratorioProxy)
class LaboratorioProxyAdmin(_BaseEspecialidadAdmin):
    pass


@admin.register(ImagenProxy)
class ImagenProxyAdmin(_BaseEspecialidadAdmin):
    pass


@admin.register(ServicioMedicoProxy)
class ServicioMedicoProxyAdmin(_BaseEspecialidadAdmin):
    pass


@admin.register(ProcederProxy)
class ProcederProxyAdmin(_BaseEspecialidadAdmin):
    pass


@admin.register(CirugiaProxy)
class CirugiaProxyAdmin(_BaseEspecialidadAdmin):
    pass
