feat: perfil por numero — trabajador vinculado y modulos permitidos
Dos perfiles, sin agregar ningun campo para distinguirlos:
- Con tercero vinculado en el ERP, el numero es de un trabajador: from_phone
pre-llena empleado_id y el flujo se saltea el buscador. Sale gratis porque
empleados y terceros son la misma tabla, asi que el id sirve tal cual.
- Sin vinculo es supervisor y elige de quien es el registro.
Los modulos habilitados (ciclos, ausentismos, produccion, pluviometria) llegan
del ERP y filtran las filas de menu. Las filas sin modulo declarado no se tocan,
asi la navegacion queda intacta.
Se mantiene la convencion de las fincas: nada marcado significa todo. Los
numeros que ya existen siguen igual sin migrar nada.
Requiere en la base del bot:
ALTER TABLE company_phones
ADD COLUMN tercero_id INT NULL, ADD COLUMN modulos_json TEXT NULL;
El codigo tolera que no existan todavia.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
94d4dcd26a
commit
724179a3c6
+11
-2
@@ -71,11 +71,13 @@ class PhoneSync
|
||||
|
||||
$db = db();
|
||||
$upsert = $db->prepare("
|
||||
INSERT INTO company_phones (company_id, wa_number, label, permission_type, is_active)
|
||||
VALUES (?, ?, ?, ?, 1)
|
||||
INSERT INTO company_phones (company_id, wa_number, label, permission_type, tercero_id, modulos_json, is_active)
|
||||
VALUES (?, ?, ?, ?, ?, ?, 1)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
label = VALUES(label),
|
||||
permission_type = VALUES(permission_type),
|
||||
tercero_id = VALUES(tercero_id),
|
||||
modulos_json = VALUES(modulos_json),
|
||||
is_active = 1
|
||||
");
|
||||
|
||||
@@ -84,11 +86,18 @@ class PhoneSync
|
||||
$waNumber = trim($n['wa_number'] ?? '');
|
||||
if ($waNumber === '') continue;
|
||||
|
||||
// tercero_id vinculado = perfil trabajador: el bot no le pregunta
|
||||
// de quién es el registro. Sin él, es supervisor y elige.
|
||||
$tercero = !empty($n['tercero_id']) ? (int)$n['tercero_id'] : null;
|
||||
$modulos = (array)($n['modulos'] ?? []);
|
||||
|
||||
$upsert->execute([
|
||||
$companyId,
|
||||
$waNumber,
|
||||
trim($n['nombre'] ?? ''),
|
||||
(int)($n['permiso'] ?? 1),
|
||||
$tercero,
|
||||
$modulos ? json_encode($modulos) : null,
|
||||
]);
|
||||
$activeNumbers[] = $waNumber;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user