виджет · согласие и запись

Согласие и запись

Один вопрос: на что посетитель должен согласиться и что ему разрешено. Требование согласия, его уведомление, временное послабление по телефону и приём файлов по умолчанию — четыре консольные панели (согласие, уведомление, бронирование, вложения), сведённые в один экран. Открывается из хаба «Виджет на сайте».

11 · W3

Редактор «Согласие и запись»

Слева — уведомление уже задано, показано в режиме чтения с «Изменить». Справа — уведомление в режиме правки (текст + ссылка), плюс переключатель согласия и его [JsonRequired]-природа.

чтение уведомления
9:41
Согласие и запись
Требовать согласие
Контакты не сохраняются, пока посетитель не примет ваш документ (/account/documents).
Уведомление об обработке данных
Нажимая «Отправить», вы соглашаетесь на обработку персональных данных для ответа на ваше обращение и записи на услуги…
Показать полностью
Ссылка reserve-me.ru/privacy
Изменить
Запись и файлы
Принимать непроверенные телефоны
Временное послабление, пока не подключён SMS-шлюз. Уберите, когда появится проверка по SMS.
Приём файлов по умолчанию
Новые диалоги начинаются с уже включённой скрепкой в поле ввода.
WidgetConsentEditor · committed.copy(requireContactConsent, noticeText, noticeUrl, acceptUnverifiedPhone, allowAttachmentUploadsByDefault)

Уведомление сохраняет консольную форму «сначала прочитать, потом править» (25-24): экран сообщает, что сейчас в силе, прежде чем предложить редактор. «Требовать согласие» и «что говорит уведомление» — два разных решения, и разделение сохранено внутри экрана.

«Принимать непроверенные телефоны» намеренно сформулировано как временное послабление (14-15 / 25-39), а не как обычный тумблер функции.

правка уведомления
9:41
Согласие и запись
Требовать согласие
Выключено — но это [JsonRequired]-гейт: полный DTO всегда шлёт его явно, никогда не «забывает».
Уведомление — правка
Нажимая «Отправить», вы соглашаетесь на обработку персональных данных для ответа на ваше обращение и записи на услуги согласно политике конфиденциальности.
Пусто — уведомление не показывается. Когда ничего не задано, виден только редактор.
https://example.com/privacy
Только https:// (клиентская вежливость). Независимо от текста уведомления.
noticeFormVisible · https-only isValidNoticeUrl · requireContactConsent всегда в PUT (§3)

Принцип (teaching mode): консоль получает безопасность полного DTO бесплатно — у неё одна форма и один «Сохранить» над всеми полями. Приложение восстанавливает эту безопасность через три экрана, держа закоммиченное целое в одной общей ViewModel и мержа по одному срезу. Поэтому requireContactConsent и любой другой булев всегда уходят на сервер и никогда не сбрасываются молча.

Приём файлов по умолчанию засевает скрепку в композере треда (25-104, см. навигацию). Отказ сервера (InvalidNoticeText / InvalidNoticeUrl) показывается дословно; черновик остаётся, committed не меняется.