up
This commit is contained in:
@@ -25,6 +25,26 @@ class BotService {
|
||||
$messageText = trim($messageText);
|
||||
$phoneNumber = $user['phone_number'];
|
||||
|
||||
// Comprobar en la base de datos el estado más reciente de 'in_service' para evitar condiciones de carrera
|
||||
try {
|
||||
$fresh = $this->db->fetch("SELECT in_service, in_service_by FROM users WHERE phone_number = :phone", ['phone' => $phoneNumber]);
|
||||
if (!empty($fresh['in_service'])) {
|
||||
try {
|
||||
$userId = $user['id'] ?? 'unknown';
|
||||
error_log("[BotService] processMessage - user_id={$userId} is currently in_service (DB), skipping bot processing");
|
||||
} catch (Throwable $t) {
|
||||
// ignore logging errors
|
||||
}
|
||||
return;
|
||||
}
|
||||
// actualizar el array $user con valores frescos por si se usan más adelante
|
||||
$user['in_service'] = !empty($fresh['in_service']);
|
||||
$user['in_service_by'] = $fresh['in_service_by'] ?? null;
|
||||
} catch (Exception $e) {
|
||||
error_log('[BotService] processMessage - failed to refresh in_service: ' . $e->getMessage());
|
||||
// En caso de fallo al consultar, continuar con lógica previa (no bloquear)
|
||||
}
|
||||
|
||||
// DEBUG: log basic context
|
||||
try {
|
||||
$userId = $user['id'] ?? 'unknown';
|
||||
|
||||
Reference in New Issue
Block a user