- 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>
- Auto-assignment: a new order is offered to the best free provider (same ranking as
the dispatcher hint); a decline or timeout passes it to the next one; nobody is
offered the same order twice; after N tries it waits for a dispatcher and the team
is notified once. The worker retries waiting orders every minute. Settings
assign.auto / assign.maxAutoOffers (toggle on the Orders page, checkbox in old admin).
- Orders: list by day with groups (need a provider, offered, assigned, in progress,
done, cancelled), periods and search; order card with progress, provider or ranked
candidates ("offer" / "pick automatically"), details, checklist and photos,
history in plain words, client, money (superadmin), payment, status change,
reschedule (slots or custom time), cancel with fee.
- New order for a client (from the client card or the Orders page): params form,
address, free slots for 14 days, price with the client's discount.
- Providers: list with rating, orders, declines, low ratings, next order; card with
quality, ratings, upcoming orders, schedule and districts, admission documents,
block/unblock with reason, new bot link, money and payouts (superadmin).
- Payout gets paidAt/note/createdById; Provider gets blockedReason/blockedAt/adminNote
and documents (ProviderDoc).
- Tests for auto-assignment.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>