"""Determina la estrategia optima de procesamiento de medios para un documento."""


def calculate_media_strategy(image_count: int, line_count: int) -> str:
    """Determina la estrategia optima de procesamiento de medios.

    Clasifica un documento en una de tres estrategias basandose en la
    proporcion de imagenes respecto al texto:
    - full_page_vlm: documento dominado por imagenes, usar vision-language model
    - extract: pocas imagenes, extraer y procesar individualmente
    - text_only: sin imagenes, solo texto

    Args:
        image_count: numero de imagenes en el documento.
        line_count: numero de lineas de texto en el documento.

    Returns:
        "full_page_vlm", "extract" o "text_only".
    """
    if line_count > 0 and (image_count / line_count > 0.3 or image_count >= 5):
        return "full_page_vlm"
    if line_count > 0 and image_count > 0:
        return "extract"
    return "text_only"
