from django import template

register = template.Library()

@register.filter
def get_item(dictionary, key):
    """Devuelve el valor de un diccionario para una clave, o 0 si no es válido."""
    if isinstance(dictionary, dict):
        return dictionary.get(key, 0)
    return 0  # Retorna 0 si no es un diccionario

@register.filter
def sum_values(dictionary):
    """Suma los valores de un diccionario. Si no es un diccionario, devuelve 0."""
    if isinstance(dictionary, dict):
        return sum(dictionary.values())
    return 0  # Retorna 0 si el argumento no es un diccionario


def get_total_semana_anterior(datos):
    # Flatten nested dictionaries and sum their values
    if all(isinstance(value, dict) for value in datos.values()):
        return sum(sum(inner_dict.values()) for inner_dict in datos.values())
    elif all(isinstance(value, (int, float)) for value in datos.values()):
        return sum(datos.values())
    else:
        raise ValueError("Estructura inesperada en 'datos': los valores deben ser dictados o números.")


@register.filter
def get_total_semana_actual(datos):
    return sum(datos.values())
