Primer commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user