feat(bot): sub-menú de 3 opciones por cada ciclo

Cada ciclo (cosecha, polinización, plagas, censo, palmarum,
tratamientos, mantenimiento) ahora presenta un menú de botones con:
  1. Más largos — texto top 10 con fecha actual
  2. Todos los lotes — PDF filtrado por finca
  3. Histórico 30d — PDF matriz (excepto mantenimiento)

Se agregan endpoints *_todos_dn apuntando a ciclos_*_dn (PDF).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-29 16:55:47 -05:00
co-authored by Claude Sonnet 4.6
parent 6572b9fcf6
commit 7120bd9675
+86 -47
View File
@@ -96,6 +96,42 @@ $configJson = [
],
],
// Sub-menús por ciclo (3 botones: más largos / todos / histórico)
'submenu_ciclo_cosecha' => ['type'=>'button','body'=>'Ciclos de Cosecha — ¿Qué deseas ver?','buttons'=>[
['id'=>'ciclo_cosecha_top', 'title'=>'🏆 Más largos'],
['id'=>'ciclo_cosecha_todos', 'title'=>'📋 Todos los lotes'],
['id'=>'ciclo_cosecha_historico','title'=>'📅 Histórico 30d'],
]],
'submenu_ciclo_polinizacion' => ['type'=>'button','body'=>'Ciclos de Polinización — ¿Qué deseas ver?','buttons'=>[
['id'=>'ciclo_polinizacion_top', 'title'=>'🏆 Más largos'],
['id'=>'ciclo_polinizacion_todos', 'title'=>'📋 Todos los lotes'],
['id'=>'ciclo_polinizacion_historico','title'=>'📅 Histórico 30d'],
]],
'submenu_ciclo_plagas' => ['type'=>'button','body'=>'Ciclos de Plagas — ¿Qué deseas ver?','buttons'=>[
['id'=>'ciclo_plagas_top', 'title'=>'🏆 Más largos'],
['id'=>'ciclo_plagas_todos', 'title'=>'📋 Todos los lotes'],
['id'=>'ciclo_plagas_historico','title'=>'📅 Histórico 30d'],
]],
'submenu_ciclo_censo' => ['type'=>'button','body'=>'Ciclos de Censo — ¿Qué deseas ver?','buttons'=>[
['id'=>'ciclo_censo_top', 'title'=>'🏆 Más largos'],
['id'=>'ciclo_censo_todos', 'title'=>'📋 Todos los lotes'],
['id'=>'ciclo_censo_historico','title'=>'📅 Histórico 30d'],
]],
'submenu_ciclo_palm' => ['type'=>'button','body'=>'Ciclos de Palmarum — ¿Qué deseas ver?','buttons'=>[
['id'=>'ciclo_palm_top', 'title'=>'🏆 Más largos'],
['id'=>'ciclo_palm_todos', 'title'=>'📋 Todos los lotes'],
['id'=>'ciclo_palm_historico','title'=>'📅 Histórico 30d'],
]],
'submenu_ciclo_tratamiento' => ['type'=>'button','body'=>'Ciclos de Tratamientos — ¿Qué deseas ver?','buttons'=>[
['id'=>'ciclo_tratamiento_top', 'title'=>'🏆 Más largos'],
['id'=>'ciclo_tratamiento_todos', 'title'=>'📋 Todos los lotes'],
['id'=>'ciclo_tratamiento_historico','title'=>'📅 Histórico 30d'],
]],
'submenu_ciclo_mantenimiento' => ['type'=>'button','body'=>'Ciclos de Mantenimiento — ¿Qué deseas ver?','buttons'=>[
['id'=>'ciclo_mantenimiento_top', 'title'=>'🏆 Más largos'],
['id'=>'ciclo_mantenimiento_todos','title'=>'📋 Todos los lotes'],
]],
// Submenú sanidad (sub-categorías de ciclos)
'submenu_ciclos_sanidad' => [
'type' => 'list',
@@ -205,53 +241,48 @@ $configJson = [
'submenu_ciclos_sanidad' => ['type' => 'menu', 'menu' => 'submenu_ciclos_sanidad'],
'submenu_ausentismos' => ['type' => 'menu', 'menu' => 'submenu_ausentismos'],
// Ciclos (texto top + PDF histórico 30 días encadenado)
'ciclo_cosecha' => ['type' => 'function', 'function' => 'api_report', 'params' => [
'endpoint_key' => 'cosecha_top_texto_bot_dn',
'date_mode' => 'last_30',
'next_endpoint_key' => 'cosecha_historico_bot_dn',
'next_caption' => '📋 Histórico cosecha 30 días',
'next_filename' => 'cosecha_historico.pdf',
]],
'ciclo_polinizacion' => ['type' => 'function', 'function' => 'api_report', 'params' => [
'endpoint_key' => 'polinizacion_top_texto_bot_dn',
'date_mode' => 'last_30',
'next_endpoint_key' => 'polinizacion_historico_bot_dn',
'next_caption' => '📋 Histórico polinización 30 días',
'next_filename' => 'polinizacion_historico.pdf',
]],
'ciclo_censo' => ['type' => 'function', 'function' => 'api_report', 'params' => [
'endpoint_key' => 'censo_top_texto_bot_dn',
'date_mode' => 'last_30',
'next_endpoint_key' => 'censo_historico_bot_dn',
'next_caption' => '📋 Histórico censo 30 días',
'next_filename' => 'censo_historico.pdf',
]],
'ciclo_plagas' => ['type' => 'function', 'function' => 'api_report', 'params' => [
'endpoint_key' => 'plagas_top_texto_bot_dn',
'date_mode' => 'last_30',
'next_endpoint_key' => 'plagas_historico_bot_dn',
'next_caption' => '📋 Histórico plagas 30 días',
'next_filename' => 'plagas_historico.pdf',
]],
'ciclo_palm' => ['type' => 'function', 'function' => 'api_report', 'params' => [
'endpoint_key' => 'palm_top_texto_bot_dn',
'date_mode' => 'last_30',
'next_endpoint_key' => 'palm_historico_bot_dn',
'next_caption' => '📋 Histórico palm 30 días',
'next_filename' => 'palm_historico.pdf',
]],
'ciclo_tratamiento' => ['type' => 'function', 'function' => 'api_report', 'params' => [
'endpoint_key' => 'tratamiento_top_texto_bot_dn',
'date_mode' => 'last_30',
'next_endpoint_key' => 'tratamiento_historico_bot_dn',
'next_caption' => '📋 Histórico tratamiento 30 días',
'next_filename' => 'tratamiento_historico.pdf',
]],
'ciclo_mantenimiento' => ['type' => 'function', 'function' => 'api_report', 'params' => [
'endpoint_key' => 'mantenimiento_top_texto_bot_dn',
'date_mode' => 'last_30',
]],
// Ciclos — cada uno abre un sub-menú de 3 opciones
'ciclo_cosecha' => ['type' => 'menu', 'menu' => 'submenu_ciclo_cosecha'],
'ciclo_polinizacion' => ['type' => 'menu', 'menu' => 'submenu_ciclo_polinizacion'],
'ciclo_plagas' => ['type' => 'menu', 'menu' => 'submenu_ciclo_plagas'],
'ciclo_censo' => ['type' => 'menu', 'menu' => 'submenu_ciclo_censo'],
'ciclo_palm' => ['type' => 'menu', 'menu' => 'submenu_ciclo_palm'],
'ciclo_tratamiento' => ['type' => 'menu', 'menu' => 'submenu_ciclo_tratamiento'],
'ciclo_mantenimiento'=> ['type' => 'menu', 'menu' => 'submenu_ciclo_mantenimiento'],
// Sub-opciones: cosecha
'ciclo_cosecha_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'cosecha_top_texto_bot_dn','date_mode'=>'last_30']],
'ciclo_cosecha_todos' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'cosecha_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_cosecha.pdf','caption'=>'Ciclos de Cosecha — todos los lotes']],
'ciclo_cosecha_historico'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'cosecha_historico_bot_dn','date_mode'=>'last_30','filename'=>'historico_cosecha.pdf','caption'=>'Histórico Cosecha — últimos 30 días']],
// Sub-opciones: polinizacion
'ciclo_polinizacion_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'polinizacion_top_texto_bot_dn','date_mode'=>'last_30']],
'ciclo_polinizacion_todos' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'polinizacion_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_polinizacion.pdf','caption'=>'Ciclos de Polinización — todos los lotes']],
'ciclo_polinizacion_historico'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'polinizacion_historico_bot_dn','date_mode'=>'last_30','filename'=>'historico_polinizacion.pdf','caption'=>'Histórico Polinización — últimos 30 días']],
// Sub-opciones: plagas
'ciclo_plagas_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'plagas_top_texto_bot_dn','date_mode'=>'last_30']],
'ciclo_plagas_todos' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'plagas_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_plagas.pdf','caption'=>'Ciclos de Plagas — todos los lotes']],
'ciclo_plagas_historico'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'plagas_historico_bot_dn','date_mode'=>'last_30','filename'=>'historico_plagas.pdf','caption'=>'Histórico Plagas — últimos 30 días']],
// Sub-opciones: censo
'ciclo_censo_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'censo_top_texto_bot_dn','date_mode'=>'last_30']],
'ciclo_censo_todos' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'censo_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_censo.pdf','caption'=>'Ciclos de Censo — todos los lotes']],
'ciclo_censo_historico'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'censo_historico_bot_dn','date_mode'=>'last_30','filename'=>'historico_censo.pdf','caption'=>'Histórico Censo — últimos 30 días']],
// Sub-opciones: palm
'ciclo_palm_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'palm_top_texto_bot_dn','date_mode'=>'last_30']],
'ciclo_palm_todos' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'palm_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_palmarum.pdf','caption'=>'Ciclos de Palmarum — todos los lotes']],
'ciclo_palm_historico'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'palm_historico_bot_dn','date_mode'=>'last_30','filename'=>'historico_palmarum.pdf','caption'=>'Histórico Palmarum — últimos 30 días']],
// Sub-opciones: tratamiento
'ciclo_tratamiento_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'tratamiento_top_texto_bot_dn','date_mode'=>'last_30']],
'ciclo_tratamiento_todos' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'tratamiento_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_tratamientos.pdf','caption'=>'Ciclos de Tratamientos — todos los lotes']],
'ciclo_tratamiento_historico'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'tratamiento_historico_bot_dn','date_mode'=>'last_30','filename'=>'historico_tratamientos.pdf','caption'=>'Histórico Tratamientos — últimos 30 días']],
// Sub-opciones: mantenimiento (sin histórico PDF)
'ciclo_mantenimiento_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'mantenimiento_top_texto_bot_dn','date_mode'=>'last_30']],
'ciclo_mantenimiento_todos'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'mantenimiento_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_mantenimiento.pdf','caption'=>'Ciclos de Mantenimiento — todos los lotes']],
// Upload
'enviar_informacion' => ['type' => 'menu', 'menu' => 'submenu_subir_ciclos'],
@@ -371,6 +402,14 @@ $endpoints = [
['key' => 'tratamiento_historico_bot_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=tratamiento_historico_bot&finca_id={finca_id}'],
['key' => 'fincas_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=fincas'],
['key' => 'numeros_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=whatsapp_numeros&estado=1'],
// Todos los lotes (PDF) por ciclo
['key' => 'cosecha_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_cosecha_dn&finca_id={finca_id}'],
['key' => 'polinizacion_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_polinizacion_dn&finca_id={finca_id}'],
['key' => 'plagas_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_plagas_dn&finca_id={finca_id}'],
['key' => 'censo_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_censo_dn&finca_id={finca_id}'],
['key' => 'palm_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_palm_dn&finca_id={finca_id}'],
['key' => 'tratamiento_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_tratamientos_dn&finca_id={finca_id}'],
['key' => 'mantenimiento_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=mantenimiento_dn&grupo=0&finca_id={finca_id}'],
];
// ─── Companies ─────────────────────────────────────────────────────────────────