- "New service": from scratch (category, who does it — cleaner, driver, career
consultant or docs agent —, fixed price and duration, online, name and
description in 5 languages) or as a copy of an existing service (prices,
questions, checklist, booking window and question texts copied). Created
switched off; delete only without orders; reorder within a category.
- "Questions in the order form" builder for fixed-price services: choice,
number, text, yes/no, required flag; labels stored as text overrides.
- The admin itself now loads text overrides, so new service names show right
away; the mini app hides missing optional texts (description, option hints)
instead of showing keys.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Products: services with full setup — content (name, description, extras names
in 5 languages via text overrides), price tiers and extras, booking window,
late-cancel fee, on/off, checklist; category discounts by membership level;
membership plan prices; promo codes; relocation steps and documents.
- Text overrides: TextOverride table on top of the i18n files; API, bots and the
worker reload them every minute, mini apps fetch public.texts at start.
- Promo codes applied to orders (admin new-order form and client API): not
stacked with membership discount — the larger wins; once per client; validity,
limit and categories.
- Broadcasts to the client bot by any client filter, per-language texts with
Russian fallback, test to yourself, ~25 msg/s, per-recipient status, resume after
worker restart, history with progress and stop.
- Activity log (who/when/what, filters, details) and Settings page with all
owner settings grouped, plus payment methods.
- Tests for promo codes and text overrides.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- ChatThread per client/provider and channel; messages get files, internal notes,
source (bot/mini app) and delivery errors; reply templates. Migration moves old
concierge messages into threads.
- Routing: subscribers write to the concierge, others to support; /support and
/concierge in the client bot; staff can take, transfer, close and move threads.
- Telegram: photos/documents from clients and providers, replies with the channel
header, files sent from storage, notifications only to the assignee or the
channel's staff, "Reply" into a specific thread.
- New admin: /chats with list, conversation, notes, files, templates, client panel;
"Message" button on the client card; dashboard counts threads awaiting reply.
- Client mini app: in-app chat screen sharing the same conversation.
- Old admin keeps working on the same data (notes hidden there).
- Tests for routing, notes, assign/close/move, lists, recipients; separate test DB
via TEST_DB_NAME; dev:chats-demo script.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>