supersam/src
Hermes cf5bf31008 feat(sms): текст SMS по типу отгрузки — свои шаблоны для доставки и самовывоза
Раньше текст был зашит в кампании и всегда говорил про доставку; настраиваемый
в админке sms_text_template не читался скриптами вообще. Сначала выяснилось,
что всем 909 pickup-группам уходило «Согласуйте дату доставки по ссылке».

- sms_campaign_settings.sms_text_template_pickup (новая колонка) + значения
  sms_text_template = «…дату доставки…», pickup = «…дату самовывоза…»
  (supabase/sms_text_templates_pickup.sql = миграция с фактическими текстами)
- sms_first_campaign / sms_second_campaign / sms_paid_storage_campaign:
  build_sms_text(group, settings) — шаблон выбирается по og.delivery_type,
  {link} подставляется ссылкой; приоритет профиль города (режим «Уведомление»)
  → шаблон кампании → дефолт скрипта
- вторая SMS и платное хранение тоже получили pickup-вариант (кампании были
  выключены, поэтому в текстах жил только «доставка»)
- SmsCampaignPanel: два поля ввода (📦 Доставка / 🏪 Самовывоз) + длины и
  предпросмотр с подставленной ссылкой + пояснение приоритета
- service-worker v117 (обязательный бамп при деплое фронта)
2026-09-28 10:50:32 +02:00
..
components feat(sms): текст SMS по типу отгрузки — свои шаблоны для доставки и самовывоза 2026-09-28 10:50:32 +02:00
constants fix: driver delivery UX — remove Загружено status, fix checkbox reset, fix confirmed label 2026-07-13 11:51:56 +00:00
context fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
data fix: RLS recursion, driver UI, auth errors, status counts 2026-05-20 16:25:05 +03:00
hooks fix(orders): список не пустеет при возврате — кэш отдаёт обёртку {data,error}, состояние не стирается 2026-09-10 15:04:47 +02:00
layouts fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
lib Initial import 2026-03-14 18:40:54 +03:00
pages feat(schedule): рабочие часы склада и доставки в админке — открытие/закрытие, границы половин, отсечка «сегодня»; робот и ссылка клиента читают часы 2026-09-14 13:15:49 +02:00
services fix(ui): закрытый баннер SMS больше не возвращается (отпечаток без суммы), баланс один на всех страницах; feat(autocall): статусы «не выбрал день» / «не выбрал время» / «и то и другое» (БД + бейдж + фильтр) 2026-09-17 12:32:53 +02:00
styles fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
test Initial import 2026-03-14 18:40:54 +03:00
utils fix(pwa): purge stale caches from app startup — clear construction-delivery-* caches directly in page context, independent of SW update 2026-08-18 10:52:49 +02:00
App.jsx Initial import 2026-03-14 18:40:54 +03:00
AppShell.jsx fix: логисты могут ставить прошедшие даты + dedup триггер 2026-07-14 18:00:35 +00:00
FontSettingsContext.jsx fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
LogisticsReadinessBoard.jsx fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
OrdersTable.jsx feat(logistics): improve order workflow and aging 2026-08-06 06:52:32 +00:00
SettingsPage.jsx fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
fontSettings.css fix: extractCity word boundary + filter persistence in sessionStorage 2026-07-03 14:07:13 +00:00
index.css Initial import 2026-03-14 18:40:54 +03:00
main.jsx fix(pwa): purge stale caches from app startup — clear construction-delivery-* caches directly in page context, independent of SW update 2026-08-18 10:52:49 +02:00
router.jsx perf: code-split routes — client delivery page loads 34KB chunk instead of 932KB bundle 2026-08-19 10:58:39 +02:00
supabaseClient.jsx feat: add pickup (самовывоз) delivery type 2026-06-10 12:02:46 +00:00