This commit is contained in:
Kirill
2026-05-24 12:03:21 +05:00
parent d0d7eab77e
commit ff2271ecb1
5 changed files with 101 additions and 35 deletions
+97 -29
View File
@@ -12,17 +12,18 @@
## Файловая структура изменений
| Файл | Что делаем |
|---|---|
| `client/src/shared/config/index.ts` | Добавляем `STORE_OP_NAME`, `STORE_OP_INN`, `STORE_OP_OGRN`, `STORE_OP_ADDR` |
| `client/src/pages/privacy-policy/ui/PrivacyPolicyPage.tsx` | Импорт из config, правка пунктов 2, 3, 5, 6, 7, добавляем дату |
| `client/src/pages/terms/ui/TermsPage.tsx` | Импорт из config, правка пунктов 1, 3, 7, 8, 9, убираем противоречие 6.1 vs 2.2 |
| Файл | Что делаем |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `client/src/shared/config/index.ts` | Добавляем `STORE_OP_NAME`, `STORE_OP_INN`, `STORE_OP_OGRN`, `STORE_OP_ADDR` |
| `client/src/pages/privacy-policy/ui/PrivacyPolicyPage.tsx` | Импорт из config, правка пунктов 2, 3, 5, 6, 7, добавляем дату |
| `client/src/pages/terms/ui/TermsPage.tsx` | Импорт из config, правка пунктов 1, 3, 7, 8, 9, убираем противоречие 6.1 vs 2.2 |
---
### Task 1: Вынести данные оператора в shared/config
**Files:**
- Modify: `client/src/shared/config/index.ts`
- [ ] **Step 1: Добавить константы оператора в shared/config**
@@ -30,10 +31,11 @@
Вставить после строки 17 (перед `export const VK_URL`):
```ts
export const STORE_OP_NAME = 'Индивидуальный предприниматель Новоселова Наталия Владимировна'
export const STORE_OP_INN = '402900832341'
export const STORE_OP_OGRN = '305402922700051'
export const STORE_OP_ADDR = '248000, Россия, г. Калуга, ул. Никитина, д. 12А'
export const STORE_OP_NAME =
"Индивидуальный предприниматель Новоселова Наталия Владимировна";
export const STORE_OP_INN = "402900832341";
export const STORE_OP_OGRN = "305402922700051";
export const STORE_OP_ADDR = "248000, Россия, г. Калуга, ул. Никитина, д. 12А";
```
- [ ] **Step 2: Проверить синтаксис**
@@ -41,6 +43,7 @@ export const STORE_OP_ADDR = '248000, Россия, г. Калуга, ул. Ни
```bash
cd client && npx tsc -b --noEmit
```
Expected: no errors.
---
@@ -48,6 +51,7 @@ Expected: no errors.
### Task 2: Исправить Политику конфиденциальности
**Files:**
- Modify: `client/src/pages/privacy-policy/ui/PrivacyPolicyPage.tsx`
- [ ] **Step 1: Заменить импорт и локальные константы**
@@ -55,21 +59,33 @@ Expected: no errors.
Заменить строки 4-10 (импорт STORE_EMAIL + локальные константы).
Было:
```ts
import { STORE_EMAIL } from '@/shared/config'
const OP_NAME = 'Индивидуальный предприниматель Новоселова Наталия Владимировна'
const OP_INN = '402900832341'
const OP_OGRN = '305402922700051'
const OP_ADDR = '248000, Россия, г. Калуга, ул. Никитина, д. 12А'
const SITE_URL = window.location.origin
```ts
import { STORE_EMAIL } from "@/shared/config";
const OP_NAME =
"Индивидуальный предприниматель Новоселова Наталия Владимировна";
const OP_INN = "402900832341";
const OP_OGRN = "305402922700051";
const OP_ADDR = "248000, Россия, г. Калуга, ул. Никитина, д. 12А";
const SITE_URL = window.location.origin;
```
Стало:
```ts
import { STORE_EMAIL, STORE_OP_NAME, STORE_OP_INN, STORE_OP_OGRN, STORE_OP_ADDR, STORE_PUBLIC_SITE_URL } from '@/shared/config'
const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? window.location.origin : '')
```ts
import {
STORE_EMAIL,
STORE_OP_NAME,
STORE_OP_INN,
STORE_OP_OGRN,
STORE_OP_ADDR,
STORE_PUBLIC_SITE_URL,
} from "@/shared/config";
const SITE_URL =
STORE_PUBLIC_SITE_URL ||
(typeof window !== "undefined" ? window.location.origin : "");
```
И заменить `OP_NAME``STORE_OP_NAME`, `OP_INN``STORE_OP_INN`, `OP_OGRN``STORE_OP_OGRN`, `OP_ADDR``STORE_OP_ADDR` во всём файле (replaceAll).
@@ -79,6 +95,7 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
Заменить `items` в секции 2.
Было:
```ts
items: [
'2.1. Оператор обрабатывает следующие персональные данные Пользователей:',
@@ -92,6 +109,7 @@ items: [
```
Стало:
```ts
items: [
'2.1. Оператор обрабатывает следующие персональные данные Пользователей:',
@@ -106,6 +124,7 @@ items: [
- [ ] **Step 3: Исправить раздел 3 — убрать несуществующую персонализацию**
Было:
```ts
items: [
'3.1. Оператор обрабатывает персональные данные в следующих целях:',
@@ -118,6 +137,7 @@ items: [
```
Стало:
```ts
items: [
'3.1. Оператор обрабатывает персональные данные в следующих целях:',
@@ -131,6 +151,7 @@ items: [
- [ ] **Step 4: Исправить раздел 5 — убрать неавтоматизированную обработку и нереалистичный срок**
Было:
```ts
items: [
'5.1. Обработка осуществляется путём сбора, записи, систематизации, накопления, хранения, уточнения, извлечения, использования, передачи, обезличивания, блокирования, удаления и уничтожения персональных данных.',
@@ -140,6 +161,7 @@ items: [
```
Стало:
```ts
items: [
'5.1. Обработка осуществляется путём сбора, записи, систематизации, накопления, хранения, уточнения, извлечения, использования, передачи, блокирования, удаления и уничтожения персональных данных.',
@@ -151,6 +173,7 @@ items: [
- [ ] **Step 5: Исправить раздел 6 — Яндекс.Метрика → ЮKassa**
Было:
```ts
items: [
'6.1. Оператор может передать персональные данные третьим лицам в следующих случаях:',
@@ -161,6 +184,7 @@ items: [
```
Стало:
```ts
items: [
'6.1. Оператор может передать персональные данные третьим лицам в следующих случаях:',
@@ -173,10 +197,13 @@ items: [
- [ ] **Step 6: Добавить дату обновления**
Заменить текст подзаголовка (строка 99):
```
Политика в отношении обработки персональных данных.
```
на:
```
Последнее обновление: 23 мая 2026 г.
```
@@ -186,6 +213,7 @@ items: [
```bash
cd client && npm run lint
```
Expected: 0 новых ошибок.
---
@@ -193,6 +221,7 @@ Expected: 0 новых ошибок.
### Task 3: Исправить Пользовательское соглашение
**Files:**
- Modify: `client/src/pages/terms/ui/TermsPage.tsx`
- [ ] **Step 1: Заменить локальные константы на импорт из config**
@@ -200,22 +229,41 @@ Expected: 0 новых ошибок.
Заменить строки 4-11.
Было:
```ts
import { STORE_EMAIL, STORE_PHONE, STORE_PUBLIC_SITE_URL } from '@/shared/config'
import {
STORE_EMAIL,
STORE_PHONE,
STORE_PUBLIC_SITE_URL,
} from "@/shared/config";
const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? window.location.origin : '')
const SITE_URL =
STORE_PUBLIC_SITE_URL ||
(typeof window !== "undefined" ? window.location.origin : "");
const OP_NAME = 'Индивидуальный предприниматель Новоселова Наталия Владимировна'
const OP_INN = '402900832341'
const OP_OGRN = '305402922700051'
const OP_ADDR = '248000, Россия, г. Калуга, ул. Никитина, д. 12А'
const OP_NAME =
"Индивидуальный предприниматель Новоселова Наталия Владимировна";
const OP_INN = "402900832341";
const OP_OGRN = "305402922700051";
const OP_ADDR = "248000, Россия, г. Калуга, ул. Никитина, д. 12А";
```
Стало:
```ts
import { STORE_EMAIL, STORE_PHONE, STORE_PUBLIC_SITE_URL, STORE_OP_NAME, STORE_OP_INN, STORE_OP_OGRN, STORE_OP_ADDR } from '@/shared/config'
const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? window.location.origin : '')
```ts
import {
STORE_EMAIL,
STORE_PHONE,
STORE_PUBLIC_SITE_URL,
STORE_OP_NAME,
STORE_OP_INN,
STORE_OP_OGRN,
STORE_OP_ADDR,
} from "@/shared/config";
const SITE_URL =
STORE_PUBLIC_SITE_URL ||
(typeof window !== "undefined" ? window.location.origin : "");
```
Заменить `OP_NAME``STORE_OP_NAME`, `OP_INN``STORE_OP_INN`, `OP_OGRN``STORE_OP_OGRN`, `OP_ADDR``STORE_OP_ADDR` во всём файле (replaceAll).
@@ -223,10 +271,13 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
- [ ] **Step 2: Дополнить раздел 1 — упомянуть OAuth и вход по коду**
В секции 1, в определении «Аутентификационные данные». Найти:
```
'— Аутентификационные данные Пользователя — адрес электронной почты Пользователя и пароль (код доступа), которые в совокупности признаются простой электронной подписью Пользователя.',
```
Заменить на:
```
'— Аутентификационные данные Пользователя — адрес электронной почты и пароль (код доступа), либо данные, полученные через сервисы авторизации третьих лиц (VK ID, Яндекс ID), либо одноразовый код, направляемый на электронную почту. Совокупность аутентификационных данных признаётся простой электронной подписью Пользователя.',
```
@@ -234,10 +285,13 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
- [ ] **Step 3: Убрать «рекламные» сообщения из п. 3.7**
Найти:
```
'3.7. При регистрации Пользователь даёт согласие на получение информационных и рекламных сообщений от Администратора на указанный адрес электронной почты.',
```
Заменить на:
```
'3.7. При регистрации Пользователь даёт согласие на получение транзакционных уведомлений (статус заказа, сообщения в чате заказа, статус оплаты) на указанный адрес электронной почты.',
```
@@ -245,10 +299,13 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
- [ ] **Step 4: Исправить противоречие 6.1 vs 2.2 («гарантирует» vs «as is»)**
Найти в секции 6:
```
'6.1. Администратор гарантирует достоверность и полноту только той информации, которую он разместил на Сайте самостоятельно.',
```
Заменить на:
```
'6.1. Администратор прилагает разумные усилия для обеспечения достоверности и полноты информации, размещённой на Сайте, однако не даёт явных гарантий точности такой информации.',
```
@@ -258,6 +315,7 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
Заменить всю секцию 7.
Было:
```ts
{
title: '7. Доступ к ресурсам третьих лиц',
@@ -270,11 +328,12 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
```
Стало:
```ts
{
title: '7. Доступ к ресурсам третьих лиц',
items: [
'7.1. Для обеспечения функциональности Сайта используются сервисы третьих лиц: платёжный сервис ЮKassa (для обработки онлайн-платежей), картографический сервис OpenStreetMap/Nominatim (для выбора адреса доставки).',
'7.1. Для обеспечения функциональности Сайта используются сервисы третьих лиц: платёжный сервис ЮKassa (для обработки онлайн-платежей).
'7.2. Владельцы указанных ресурсов имеют собственную политику конфиденциальности и самостоятельно определяют условия обработки получаемой информации.',
'7.3. При переходе на сторонние ресурсы Пользователи самостоятельно определяют пределы использования своей информации согласно правилам соответствующих ресурсов.',
],
@@ -286,6 +345,7 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
Заменить всю секцию 8.
Было:
```ts
{
title: '8. Информация, хранящаяся на стороне браузера',
@@ -302,6 +362,7 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
```
Стало:
```ts
{
title: '8. Информация, хранящаяся на стороне браузера',
@@ -318,12 +379,14 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
Заменить строки 9.3 и 9.4 в секции 9.
Было:
```ts
'9.3. Администратор обрабатывает следующие персональные данные: Ф. И. О., адрес электронной почты, номер телефона, IP-адрес, тип браузера, данные о действиях на Сайте.',
'9.4. Цели обработки персональных данных: обеспечение функционирования Сайта, оказание информационной поддержки, предоставление персонализированных сервисов, направление информационных сообщений.',
```
Стало:
```ts
'9.3. Администратор обрабатывает следующие персональные данные: адрес электронной почты, имя (при добровольном указании), номер телефона (при оформлении доставки), адрес доставки.',
'9.4. Цели обработки персональных данных: обеспечение функционирования Сайта, аутентификация Пользователя, оформление и доставка заказов, направление транзакционных уведомлений.',
@@ -334,6 +397,7 @@ const SITE_URL = STORE_PUBLIC_SITE_URL || (typeof window !== 'undefined' ? windo
```bash
cd client && npm run lint
```
Expected: 0 новых ошибок.
---
@@ -347,6 +411,7 @@ Expected: 0 новых ошибок.
```bash
cd client && npx tsc -b --noEmit
```
Expected: no errors.
- [ ] **Step 2: Lint**
@@ -354,6 +419,7 @@ Expected: no errors.
```bash
cd client && npm run lint
```
Expected: 0 errors (warnings OK).
- [ ] **Step 3: Сборка**
@@ -361,6 +427,7 @@ Expected: 0 errors (warnings OK).
```bash
cd client && npm run build
```
Expected: успешная сборка.
- [ ] **Step 4: Format check**
@@ -368,4 +435,5 @@ Expected: успешная сборка.
```bash
cd client && npm run format:check
```
Expected: все файлы отформатированы (или отформатировать через `npm run format`).