feat(mera): оферта, политика возврата и утверждённая политика ПДн + реквизиты #2874
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2874
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/mera-legal-docs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Зачем
Юридический блокер публичного B2C-запуска. Два пункта из чек-листа владельца были закрыты «нечем»:
Плюс гейт G6 из
mera-b2c-paid-flow-decision.md:LEGAL_ENTITY == null→ нет реквизитов, нет продажи.Владелец прислал редакции всех трёх документов (13.08.2026) и реквизиты; выбраны почта
support@meraocenka.ruи эквайер CloudPayments.Что в PR
content.ts—LEGAL_ENTITYзаполнен (ООО «ПРОЕКТ ФЛЭТ», ИНН/КПП/ОГРН, юр. и фактический адрес, директор, банковские реквизиты); добавленыSUPPORT_EMAIL,SERVICE_PRICE_RUB,LEGAL_DOCS_REVISION,PRIVACY_APPROVAL, внутренние пути и короткие публичные URL документов. Это единственное место, где живут реквизиты: подвал, оферта, политика возврата и политика ПДн рендерят поля, а не повторяют строки./mera-public/ofertaи/mera-public/refund— редакции владельца перенесены дословно; плейсхолдер[адрес электронной почты]заменён на почту поддержки.privacy/page.tsxпереписана на утверждённую редакцию — с названным оператором, реквизитами и приказом об утверждении.SiteFooter— почта, ссылки на все три документа, реквизиты с ОГРН.Caddyfile— короткие адреса/oferta,/refund,/privacyчерезrewriteна поддерево лэндинга. Именно эти URL напечатаны внутри самих документов и уйдут в заявку эквайеру; сегодня они отдавали 404. Пути перечислены поимённо — allowlist-by-default периметра не ослаблен.smoke-mera-perimeter.sh— три проверки на короткие адреса.Что сохранено намеренно
PUBLIC_ESTIMATE_ENABLED. Утверждённый текст политики (п. 5.1) описывает передачу адреса на сервер, но публичный расчёт ещё выключен и адрес физически не покидает браузер. Поэтому приfalseрендерится п. 5.4: «публичный расчёт ещё не открыт… пункты 5.1–5.2 применяются с момента открытия». Снимать вместе с флагом, а не потом.PAID_REPORT_RETENTION_MONTHS, а не числом в тексте — гейтитсяtest_paid_retention_text_consistency.py(тест ловит и число в комментарии, проверено).Что этот PR НЕ делает
Не включает приём оплаты: платёжного контура в коде нет,
PUBLIC_ESTIMATE_ENABLEDпо-прежнемуfalse. Оферта с ценой публикуется раньше кнопки намеренно — без неё эквайер не примет заявку.Разделы 2.1 и 4 политики возврата обещают автоматический возврат при техническом сбое. На момент публикации это установленный порядок, а не наблюдаемое поведение системы; при подключении оплаты автовозврат обязан появиться в коде вместе с кнопкой — обещание уже опубликовано и является условием договора.
Проверено локально
tsc --noEmit,next lint,vitest(29 тестов),check:mera-public-isolation(18 файлов, закрытый контур не найден)next build— все три страницы пререндерены статикойpytest tests/test_paid_retention_text_consistency.py— 3 passedcaddy validate+caddy adapt— маршрут/oferta|/refund|/privacy → /trade-in/mera-public{path}на местеnext start+ curl всех трёх страниц: реквизиты, ОГРН, почта, цена и п. 5.4 рендерятся; в подвале лэндинга — почта, три ссылки и реквизитыПрод-проверка коротких адресов — после мержа и деплоя (smoke-скрипт).