"""Construye visualization_settings para smartscalar con comparacion anotherColumn.""" from __future__ import annotations from .metabase_viz_column_format import metabase_viz_column_format def metabase_smartscalar_anothercolumn_viz( *, main_column: str, compare_column: str, label: str = "vs N-1", number_style: str = "percent", decimals: int = 2, currency: str = "EUR", comparison_id: str = "cmp_n1", ) -> dict: """Construye visualization_settings para smartscalar con comparacion anotherColumn. Genera el dict completo de ``visualization_settings`` para una card con ``display=smartscalar`` que muestra ``main_column`` con una comparacion de tipo ``anotherColumn`` apuntando a ``compare_column`` (ambas columnas en la misma fila del query). Este patron es util cuando el query devuelve directamente el valor actual y el valor de comparacion como columnas separadas (en lugar del patron de 2 filas temporales de ``previousValue``). Args: main_column: Nombre de la columna que se muestra como valor principal en el smartscalar. Debe coincidir exactamente con el nombre de columna en el resultado del query. compare_column: Nombre de la columna que se usa como valor de comparacion. Debe estar en el mismo resultado del query que ``main_column``. label: Etiqueta mostrada bajo el delta de comparacion. Default ``"vs N-1"``. number_style: Estilo de formato para ambas columnas. Valores: ``"percent"``, ``"currency"``, ``"decimal"``, ``""`` (default Metabase). Default ``"percent"``. decimals: Numero de decimales para ambas columnas. Default ``2``. currency: Codigo ISO de moneda (``"EUR"``, ``"USD"``, ...). Solo relevante cuando ``number_style="currency"``. Default ``"EUR"``. comparison_id: Identificador interno de la comparacion dentro del array ``scalar.comparisons``. Debe ser unico por card. Default ``"cmp_n1"``. Returns: Dict con la estructura completa de ``visualization_settings``:: { "scalar.field": "", "scalar.comparisons": [ {"id": "", "type": "anotherColumn", "column": "", "label": "