feat(api): уточнения в окне 10 минут

saveLead в одной IMMEDIATE-транзакции: заявка с тем же телефоном
моложе 10 минут → уточнение, если имя, интерес или комментарий
отличаются от последней версии, иначе повтор без записи. Окно от
created_at заявки, уточнения его не продлевают. Ответ 200 duplicate,
notifier получает id уточнения и список изменившихся полей.
This commit is contained in:
2026-10-17 15:39:31 +03:00
parent fa0964b24d
commit c20e40c333
4 changed files with 199 additions and 19 deletions
+2
View File
@@ -47,7 +47,9 @@ export function createApp(deps: AppDeps) {
const userAgent = c.req.header('user-agent')?.slice(0, USER_AGENT_MAX) ?? null;
const saved = saveLead(deps.db, result.data, { now: deps.now(), userAgent });
if (saved.kind === 'unchanged') return reply({ ok: true, duplicate: true, clarified: false }, 200);
notifyLater(deps.notifier, saved.event);
if (saved.kind === 'clarified') return reply({ ok: true, duplicate: true, clarified: true }, 200);
return reply({ ok: true, duplicate: false }, 201);
},
);