# Role Switch And Production Copy Design **Goal:** Убрать из пользовательского интерфейса явную demo/PWA-подачу, добавить служебный сценарий быстрого входа по специальному email с выбором роли и подготовить аккуратную клиентскую ссылку для показа выбора доставки. ## Scope - Обычный рабочий OTP-вход остается основным сценарием. - При вводе специального email `roles@local` логин переключается в локальный служебный режим: - пользователь выбирает роль `manager`, `logistician` или `driver`; - OTP не требуется; - приложение авторизует пользователя через локальный fallback-профиль для выбранной роли. - Из интерфейса убираются тексты и панели, которые прямо продают demo/PWA-режим. - Для клиентского показа появляется локальный showcase-token с понятными слотами: - завтра / послезавтра; - до обеда / после обеда. ## UX Decisions - Служебный email не скрывается глубоко в коде: он поддерживается формой логина напрямую, чтобы им было удобно пользоваться на встрече. - Тексты в логине и дашборде должны звучать как рабочий продукт, без слов `demo`, `демонстрация`, `PWA-версия`, `offline demo`. - Быстрый вход по роли оформляется как сервисный режим доступа, а не как обучающий блок. - Клиентская showcase-ссылка должна выглядеть как реальная страница подтверждения доставки, а не как технический мок. ## Data Approach - Для служебного role-switch входа используются уже существующие локальные профили ролей. - Для showcase-клиента используется локально собранный invitation payload, без вызова Supabase. - Боевой Supabase flow не меняется и продолжает обслуживать обычные invitation token. ## Validation - Тесты на логин покрывают: - обычный OTP-copy без demo-текста; - служебный режим по `roles@local`; - выбор роли без OTP. - Тесты client flow покрывают showcase invitation. - После правок прогоняются таргетированные тесты UI и auth.