from django.contrib import admin
from .models import Proyecto, ProyectoDireccion, UnidadDeMedida, HorarioActivo, SLA, Equipo

@admin.register(Proyecto)
class ProyectoAdmin(admin.ModelAdmin):
    list_display = ('nombre', 'clienteMandante', 'clienteFinal', 'fechaInicio', 'fechaFin', 'estado')
    list_filter = ('fechaInicio', 'fechaFin', 'estado')
    search_fields = ('nombre', 'clienteMandante__nombre', 'clienteFinal__nombre')
    date_hierarchy = 'fechaInicio'
    ordering = ('-fechaInicio',)
    fieldsets = (
        (None, {
            'fields': ('nombre', 'clienteMandante', 'clienteFinal', 'estado')
        }),
        ('Fechas', {
            'fields': ('fechaInicio', 'fechaFin')
        }),
        ('Notas', {
            'fields': ('notas',),
            'classes': ('collapse',)
        }),
    )

@admin.register(ProyectoDireccion)
class ProyectoDireccionAdmin(admin.ModelAdmin):
    list_display = ('proyecto', 'direccion', 'region', 'comuna', 'contacto', 'cantidadEquipos')
    list_filter = ('proyecto', 'region', 'comuna')
    search_fields = ('direccion', 'contacto', 'proyecto__nombre')
    raw_id_fields = ('proyecto', 'region', 'comuna')

@admin.register(UnidadDeMedida)
class UnidadDeMedidaAdmin(admin.ModelAdmin):
    list_display = ('proyecto', 'nombre', 'unidad', 'dias_habiles')
    list_filter = ('proyecto', 'dias_habiles')
    search_fields = ('nombre', 'unidad', 'proyecto__nombre')
    raw_id_fields = ('proyecto',)

@admin.register(HorarioActivo)
class HorarioActivoAdmin(admin.ModelAdmin):
    list_display = ('proyecto', 'dia', 'activo', 'hora_inicio', 'hora_termino')
    list_filter = ('proyecto', 'dia', 'activo')
    search_fields = ('proyecto__nombre',)
    raw_id_fields = ('proyecto',)

@admin.register(SLA)
class SLAAdmin(admin.ModelAdmin):
    list_display = ('proyecto', 'zona', 'categoria', 'unidad_medida', 'cantidad', 'multa')
    list_filter = ('proyecto', 'zona', 'categoria')
    search_fields = ('proyecto__nombre', 'zona__nombre')
    raw_id_fields = ('proyecto', 'zona', 'unidad_medida')

@admin.register(Equipo)
class EquipoAdmin(admin.ModelAdmin):
    list_display = ('proyecto', 'ubicacion', 'nombre', 'marca', 'modelo', 'numero_serie', 'cantidad')
    list_filter = ('proyecto', 'marca', 'modelo')
    search_fields = ('nombre', 'marca', 'modelo', 'numero_serie', 'proyecto__nombre')
    raw_id_fields = ('proyecto', 'ubicacion')