# -*- coding: utf-8 -*-
"""
Configuración compartida para scripts SIIGO
"""
import os

# Columnas CRÍTICAS (18) — deben estar presentes en cualquier Excel
COLUMNAS_CRITICAS = [
    "NIT Emisor", "Nombre Emisor",
    "IVA", "ICA", "IC", "INC", "Timbre", "INC Bolsas",
    "IN Carbono", "IN Combustibles", "IC Datos", "ICL", "INPP",
    "IBUA", "ICUI", "Rete IVA", "Rete Renta", "Rete ICA"
]

# Mapeo de columnas SIIGO (más columnas que DIAN)
COLUMNAS_SIIGO = {
    # Emisor
    "NIT Emisor": "NIT Emisor",
    "Nombre Emisor": "Nombre Emisor",
    # Datos de proveedor (en BASE PROVEEDORES, no en COMPRAS)
    "NIT": "NIT",
    "PROVEEDOR": "PROVEEDOR",
    "RAZON SOCIAL": "RAZON SOCIAL",
    "CATEGORIA": "CATEGORIA",
    "DESCRIPCION": "DESCRIPCION",
    "NOTA": "NOTA",
    # Impuestos
    "IVA": "IVA",
    "ICA": "ICA",
    "IC": "IC",
    "INC": "INC",
    "Timbre": "Timbre",
    "INC Bolsas": "INC Bolsas",
    "IN Carbono": "IN Carbono",
    "IN Combustibles": "IN Combustibles",
    "IC Datos": "IC Datos",
    "ICL": "ICL",
    "INPP": "INPP",
    "IBUA": "IBUA",
    "ICUI": "ICUI",
    "Rete IVA": "Rete IVA",
    "Rete Renta": "Rete Renta",
    "Rete ICA": "Rete ICA",
    # Tasas y cuentas
    "TARIFAFTE": "TARIFAFTE",
    "TARIFAICA": "TARIFAICA",
    "Base": "Base",
    "CxPagar": "CxPagar",
    "Fedepapa": "Fedepapa",
    # Otros
    "Total": "Total",
}

# Mapeo de columnas DIAN (formato oficial)
COLUMNAS_DIAN = {
    # Documento
    "Tipo de documento": "Tipo de documento",
    "CUFE/CUDE": "CUFE/CUDE",
    "Folio": "Folio",
    "Prefijo": "Prefijo",
    # Emisor
    "NIT Emisor": "NIT Emisor",
    "Nombre Emisor": "Nombre Emisor",
    # Receptor
    "NIT Receptor": "NIT Receptor",
    "Nombre Receptor": "Nombre Receptor",
    # Fechas
    "Fecha Emisión": "Fecha Emisión",
    "Fecha Recepción": "Fecha Recepción",
    # Transaccional
    "Divisa": "Divisa",
    "Forma de Pago": "Forma de Pago",
    "Medio de Pago": "Medio de Pago",
    # Impuestos
    "IVA": "IVA",
    "ICA": "ICA",
    "IC": "IC",
    "INC": "INC",
    "Timbre": "Timbre",
    "INC Bolsas": "INC Bolsas",
    "IN Carbono": "IN Carbono",
    "IN Combustibles": "IN Combustibles",
    "IC Datos": "IC Datos",
    "ICL": "ICL",
    "INPP": "INPP",
    "IBUA": "IBUA",
    "ICUI": "ICUI",
    "Rete IVA": "Rete IVA",
    "Rete Renta": "Rete Renta",
    "Rete ICA": "Rete ICA",
    # Totales
    "Total": "Total",
    "Estado": "Estado",
    "Grupo": "Grupo",
}

# Palabras clave para detectar formato
KEYWORDS_SIIGO = ["Base", "CxPagar", "CATEGORIA", "TARIFAFTE"]
KEYWORDS_DIAN = ["CUFE", "Forma de Pago", "Medio de Pago", "Folio", "Prefijo"]

# Colnames normalizadas para búsqueda (minúsculas, sin acentos)
NORMALIZED_MAPPING = {
    "nit emisor": "NIT Emisor",
    "nombre emisor": "Nombre Emisor",
    "iva": "IVA",
    "ica": "ICA",
    "ic": "IC",
    "inc": "INC",
    "timbre": "Timbre",
    "inc bolsas": "INC Bolsas",
    "in carbono": "IN Carbono",
    "in combustibles": "IN Combustibles",
    "ic datos": "IC Datos",
    "icl": "ICL",
    "inpp": "INPP",
    "ibua": "IBUA",
    "icui": "ICUI",
    "rete iva": "Rete IVA",
    "rete renta": "Rete Renta",
    "rete ica": "Rete ICA",
    "base": "Base",
    "cxpagar": "CxPagar",
    "fedepapa": "Fedepapa",
    "total": "Total",
    "folio": "Folio",
    "prefijo": "Prefijo",
    "tipo de documento": "Tipo de documento",
    "cufe": "CUFE/CUDE",
    "fecha emision": "Fecha Emisión",
    "forma de pago": "Forma de Pago",
}

# Directorio donde se guardan configuraciones
CONFIG_DIR = os.path.dirname(os.path.abspath(__file__)) + "/../configs"
MAPEOS_FILE = os.path.join(CONFIG_DIR, "mapeos_cliente.json")
