пва
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
## Файловая структура изменений
|
||||
|
||||
| Файл | Что делаем |
|
||||
|---|---|
|
||||
| ---------------------------------------------------------- | ------------------------------------------------------------------------------- |
|
||||
| `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 |
|
||||
@@ -23,6 +23,7 @@
|
||||
### 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`).
|
||||
|
||||
@@ -30,8 +30,7 @@ const sections = [
|
||||
'2.1. Оператор обрабатывает следующие персональные данные Пользователей:',
|
||||
'— адрес электронной почты;',
|
||||
'— имя (отображаемое имя, может быть указано Пользователем добровольно);',
|
||||
'— номер телефона (указывается Пользователем добровольно при оформлении доставки);',
|
||||
'— адрес доставки и геолокационные координаты (указываются Пользователем при оформлении заказа);',
|
||||
'— ФИО получателя, номер телефона и адрес доставки (указывается Пользователем добровольно при оформлении доставки);',
|
||||
'— сессионные cookie-файлы (исключительно для поддержания входа в Личный кабинет).',
|
||||
],
|
||||
},
|
||||
|
||||
@@ -101,7 +101,7 @@ const sections = [
|
||||
{
|
||||
title: '7. Доступ к ресурсам третьих лиц',
|
||||
items: [
|
||||
'7.1. Для обеспечения функциональности Сайта используются сервисы третьих лиц: платёжный сервис ЮKassa (для обработки онлайн-платежей), картографический сервис OpenStreetMap/Nominatim (для выбора адреса доставки).',
|
||||
'7.1. Для обеспечения функциональности Сайта используются сервисы третьих лиц: платёжный сервис ЮKassa (для обработки онлайн-платежей)',
|
||||
'7.2. Владельцы указанных ресурсов имеют собственную политику конфиденциальности и самостоятельно определяют условия обработки получаемой информации.',
|
||||
'7.3. При переходе на сторонние ресурсы Пользователи самостоятельно определяют пределы использования своей информации согласно правилам соответствующих ресурсов.',
|
||||
],
|
||||
|
||||
@@ -19,8 +19,7 @@ export const VK_URL = import.meta.env.VITE_VK_URL ?? 'https://vk.com/club1583958
|
||||
|
||||
/** Данные оператора для юридических документов. */
|
||||
export const STORE_OP_NAME = 'Комарова Лариса Николаевна'
|
||||
export const STORE_OP_TYPE = 'самозанятый'
|
||||
/** Тестовый ИНН — заменить на реальный. */
|
||||
export const STORE_OP_INN = '402900832341'
|
||||
export const STORE_OP_TYPE = 'Самозанятый'
|
||||
export const STORE_OP_INN = '591878584346'
|
||||
export const STORE_OP_ADDR =
|
||||
'618909, Россия, Пермский край, Лысьвенский муниципальный округ, Лысьва, улица Мира, 34, кв. 24'
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user