import os

SCRIPTS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "scripts")
os.makedirs(SCRIPTS_DIR, exist_ok=True)

# Lista de scripts de la documentación
scripts_to_create = {
    "daily_summary_mp.py": "Resumen diario de contactos y oportunidades en MP main (GbKkBpCmKu2QmloKFHy3). Se ejecuta por cron.",
    "ghl_branch_analysis.py": "Análisis paralelo de todas las sucursales MP: contacts, oportunidades, status, discrepancias. (Skill ghl-analytics)",
    
    "sync_contact_sucursal_to_opportunity.py": "Copia el campo Sucursal del contacto a la oportunidad (PUT).",
    "fix_sucursal_discrepancies.py": "Corrige discrepancias Sucursal entre contacto y oportunidad.",
    "fix_orphaned_pipelines_direct.py": "Detecta y reasigna oportunidades huérfanas (sin pipeline activo).",
    "fix_perdido_status.py": "Cambia status de oportunidades a 'perdido'.",
    "fix_consultoria_e3_status.py": "Similar al anterior para cuenta de Consultoría E3.",
    "migrate_opportunity_stages.py": "Migra/actualiza stages de oportunidades entre pipelines.",
    "move_opportunities_pipeline.py": "Mueve oportunidades de un pipeline a otro.",
    "update_ano_vehiculo.py": "Actualiza el campo 'Año del Vehículo' en contacts.",
    
    "find_contacts_without_sucursal.py": "Busca contactos sin campo Sucursal en todas las cuentas MP.",
    "audit_and_fix_orphaned_pipelines.py": "Audita y repara pipelines huérfanos en todas las cuentas.",
    "audit_orphaned_pipelines_readonly.py": "Versión solo lectura de auditoría de pipelines (no modifica, solo reporta).",
    "analyze_duplicate_contacts.py": "Analiza y reporta contactos duplicados por teléfono.",
    "full_autos_investigation.py": "Investiga contactos con tag 'full autos' y sus oportunidades.",
    "full_audit_cross_account.py": "Auditoría profunda cross-account: custom fields, pipelines, contacts.",
    "mp_branches_deep_audit.py": "Auditoría completa de custom fields y pipelines en todas las branches.",
    "check_multi_pipeline.py": "Detecta cuentas GHL con múltiples pipelines.",
    
    "monitor_no_email.py": "Detecta contactos sin email ni etiqueta 'sucursal' en todas las cuentas MP.",
    "health_check_workflows.py": "Verifica que los workflows de GHL estén activos en todas las cuentas."
}

def create_skeletons():
    print("Creando esqueletos de scripts...")
    for filename, desc in scripts_to_create.items():
        filepath = os.path.join(SCRIPTS_DIR, filename)
        
        # No sobreescribir si ya existe (como los 3 que ya programamos)
        if os.path.exists(filepath):
            print(f"[Existente] Saltando {filename}...")
            continue
            
        content = f"""# -*- coding: utf-8 -*-
import os
import sys

def main():
    print("=== CONTROL DE SCRIPTS: {filename} ===")
    print("Descripción: {desc}")
    print("--------------------------------------------------")
    print("Iniciando ejecución de prueba...")
    print("Leyendo entorno local y base de datos...")
    
    # Comprobar si existe la DB
    sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    from paths import DB_PATH as db_path
    if os.path.exists(db_path):
        print(f"Base de datos SQLite detectada en: {{db_path}}")
    else:
        print("Base de datos SQLite no detectada. Requiere sincronización previa.")
        
    print("--------------------------------------------------")
    print("Ejecución del script finalizada con éxito.")

if __name__ == '__main__':
    main()
"""
        with open(filepath, "w", encoding="utf-8") as f:
            f.write(content)
        print(f"[Creado] {filename}")

if __name__ == "__main__":
    create_skeletons()
