From 6d8992dfad569c6a06de494b94a4a95dd78cca44 Mon Sep 17 00:00:00 2001 From: Hermes Date: Mon, 28 Sep 2026 13:11:56 +0200 Subject: [PATCH] =?UTF-8?q?fix(autocall):=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB?= =?UTF-8?q?=D1=8C=D1=82=D0=B0=D1=82=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=B7=D0=B2=D0=BE=D0=BD=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20=D0=BD=D0=B5=20=D0=BF?= =?UTF-8?q?=D0=B8=D1=88=D0=B5=D1=82=D1=81=D1=8F=20=D0=B2=20=D0=B1=D0=BE?= =?UTF-8?q?=D0=B5=D0=B2=D0=BE=D0=B9=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В тестовом режиме робот звонит на тестовый номер, но нажатия уходили в заказ клиента: заказ получал статус «согласовано роботом», дату, комментарий и счётчик попытки — хотя клиенту не звонили. Теперь при was_test_mode: - строка журнала пишется без привязки к заказу (order_group_id = null), - заказ не обновляется вообще (ранний выход до всех update). Симптом на проде 28.09: заказ ТП-010796 (9788324113) получил «Согласовано роботом: сегодня, вторая половина дня» после тестового звонка. --- supabase/functions/autocall-result/index.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/supabase/functions/autocall-result/index.ts b/supabase/functions/autocall-result/index.ts index 19f8194..00b7673 100644 --- a/supabase/functions/autocall-result/index.ts +++ b/supabase/functions/autocall-result/index.ts @@ -123,8 +123,11 @@ Deno.serve(async (request) => { } // ── Вставка в лог ── + // У тестового звонка заказ не привязываем: робот звонит на тестовый номер, + // поэтому такая строка не должна попадать в счётчики попыток и в историю + // звонков клиента (см. ниже ранний выход). const { error: logError } = await supabase.from("autocall_log").insert({ - order_group_id: body.order_group_id || null, + order_group_id: wasTest ? null : body.order_group_id || null, campaign_type: campaignType, customer_phone: body.customer_phone, attempt_no: attemptNo, @@ -145,6 +148,16 @@ Deno.serve(async (request) => { }); if (logError) throw logError; + // ── Тестовый звонок: дальше не идём ── + // В тестовом режиме робот звонит на тестовый номер (админка → Автодозвон), + // поэтому нажатия относятся к тесту, а не к клиенту. Раньше результат теста + // записывался в боевой заказ: заказ получал «согласовано роботом», дату и + // комментарий, хотя клиенту никто не звонил. Теперь — только строка журнала + // с пометкой was_test_mode и без привязки к заказу. + if (wasTest) { + return jsonResponse({ ok: true, test: true, order_group_untouched: true }, 200, cors); + } + // ── Найти заказ, если order_group_id не передан ── let orderGroupId = body.order_group_id || null; if (!orderGroupId) {