Corrige tablas faltantes en producción y bug de listado en Entidades
- AutoMigrate migraba ~50 modelos en un solo llamado que se detiene en el primer error, dejando todo lo posterior (plantillas_documento, tarifas, documentos_generados, arquitecturas, telegram_staff_tokens) sin tabla, en silencio. Ahora se migra modelo por modelo: uno roto ya no bloquea al resto. - /app/contabilidad/entidades pedía datos a la misma URL de la página (devuelve HTML) en vez de /list (JSON) — el listado nunca traía nada. - Mensaje de bienvenida del asistente: estaba generado por la IA cada vez con calidad variable; ahora es determinístico para /ayuda y /start, con redacción revisada, y el system prompt pide el mismo formato cuando el usuario solo saluda.
This commit is contained in:
@@ -1505,6 +1505,7 @@ COMPORTAMIENTO:
|
||||
- Para listar datos, muestra los más relevantes en formato legible
|
||||
- Los valores monetarios son en COP (pesos colombianos)
|
||||
- Si una herramienta falla, explica el error y sugiere alternativas
|
||||
- Si el usuario solo saluda o pregunta qué puedes hacer (sin pedir una acción concreta), responde igual que el comando /ayuda: breve, organizado por categoría, sin inventar capacidades que no tienes
|
||||
- En Coolify: si solo hay una instancia activa se usa automáticamente, no hace falta preguntar por config_id; si hay varias, consulta coolify_instancias y pregunta cuál. Para actuar sobre algo necesitas su UUID: búscalo con coolify_listar por nombre antes de llamar a coolify_accion. Reiniciar/desplegar es rutinario, hazlo directo; detener algo en producción sí confírmalo antes. Si un despliegue falla, revisa coolify_logs y coolify_deployments para explicar la causa concreta
|
||||
- Cuando el mensaje empiece con "[Documento adjunto recibido: ...]", el usuario acaba de enviar un archivo por Telegram (puede ser cualquier formato: PDF, foto, Word, Excel, etc.). Si es PDF o foto, viene adjunto a este mismo mensaje y puedes leerlo directamente. Si es otro formato (Word, Excel, zip, etc.) no puedes ver su contenido, solo el nombre — de todas formas guárdalo con la herramienta que corresponda usando lo que el usuario haya escrito como contexto, no rechaces el archivo por el formato. Decide primero de qué se trata el archivo antes de guardarlo:
|
||||
· Si es una factura → primero determina la dirección leyendo quién emite y quién recibe: si el emisor/vendedor es "U-Site S.A.S BIC" (o similar) y el destinatario es un cliente, es una factura de VENTA → identifica cliente, monto y número, resuelve el cliente_id con listar_clientes, y llama a adjuntar_factura. Si es al revés — un proveedor (AWS, Coolify, un hosting, cualquier tercero) le está facturando A U-Site — es una factura de COMPRA → llama a adjuntar_factura_compra con el nombre de ese proveedor, no busques cliente_id. Ante la duda, mira a nombre de quién sale la plata: si U-Site cobra, es venta; si U-Site paga, es compra
|
||||
@@ -1532,21 +1533,35 @@ func ProcessAgentMessage(chatID int64, userText string, ai *models.AiConfig) (st
|
||||
}
|
||||
return "Historial borrado. ¿En qué puedo ayudarte?", nil
|
||||
case "/ayuda", "/start":
|
||||
return `Soy el agente administrador de U-Site. Puedo ayudarte con:
|
||||
return `¡Hola! 👋 Soy el asistente de administración de U-Site S.A.S BIC. Esto es lo que puedo hacer por ti:
|
||||
|
||||
• Clientes y contratos
|
||||
• Contabilidad (ingresos, egresos, cuentas por cobrar/pagar)
|
||||
• Proyectos y tickets
|
||||
• Tareas del equipo
|
||||
• Deploy y gestión de apps en Coolify
|
||||
• Monitoreo de servidores y URLs
|
||||
✅ Clientes y facturación
|
||||
Listar y crear clientes · facturas de venta y compra · cuentas por cobrar y pagar
|
||||
|
||||
Escríbeme en lenguaje natural, por ejemplo:
|
||||
✅ Contratos y cotizaciones
|
||||
Crear, renovar y gestionar contratos · generar cotizaciones y propuestas técnicas
|
||||
|
||||
✅ Proyectos y soporte
|
||||
Crear proyectos y fases · gestionar tickets · adjuntar documentos (PDF, fotos, Word, Excel, etc.)
|
||||
|
||||
✅ Tareas del equipo
|
||||
Crear y asignar tareas · ver el tablero Kanban
|
||||
|
||||
✅ Coolify (deploy y control)
|
||||
Listar apps, servicios y bases de datos · deploy, reinicio y detención · logs y despliegues
|
||||
|
||||
✅ Contabilidad
|
||||
Dashboard de ingresos/egresos · transacciones · tarifas
|
||||
|
||||
✅ Monitoreo
|
||||
Servidores y URLs vigiladas
|
||||
|
||||
¿Qué necesitas? Escríbeme en lenguaje natural, por ejemplo:
|
||||
"muéstrame los clientes de esta semana"
|
||||
"haz deploy de la app abc123 en coolify 1"
|
||||
"¿cuánto ingresamos este mes?"
|
||||
|
||||
Comandos: /reset /instancias /ayuda`, nil
|
||||
Comandos: /reset · /instancias · /ayuda`, nil
|
||||
case "/instancias":
|
||||
cfgs, err := models.GetAllCoolifyConfigs()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user