From 7a5eebec91ee73a2d38509cfa4f9bbb87cb75225 Mon Sep 17 00:00:00 2001 From: Nikita Kiselev Date: Sun, 23 Nov 2025 23:17:21 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=B8=D1=82=D0=B8=D0=BA=D0=B8=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=84=D0=B8=D0=B4=D0=B5=D0=BD=D1=86=D0=B8=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=B8=20=D1=81=D0=BE=D0=B3?= =?UTF-8?q?=D0=BB=D0=B0=D1=81=D0=B8=D1=8F=20=D0=BD=D0=B0=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D1=83=20=D0=9F=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Основные изменения: Backend: - Добавлена миграция для поля privacy_consented_at в таблицу telecart_customers - Создан PrivacyPolicyHandler с методами: * checkIsUserPrivacyConsented - проверка наличия согласия пользователя * userPrivacyConsent - сохранение согласия пользователя - Обновлен TelegramService для извлечения userId из initData - Обновлен TelegramServiceProvider для внедрения зависимостей - Добавлены новые маршруты в routes.php - Обновлен SettingsHandler для возврата privacy_policy_link - Обновлен TelegramCustomersHandler для включения privacy_consented_at в ответы - Обновлены тесты TelegramServiceTest Frontend (SPA): - Создан компонент PrivacyPolicy.vue для отображения запроса согласия - Добавлена проверка согласия при инициализации приложения (main.js) - Обновлен App.vue для отображения компонента PrivacyPolicy - Добавлены функции checkIsUserPrivacyConsented и userPrivacyConsent в ftch.js - Обновлен SettingsStore для хранения privacy_policy_link и is_privacy_consented Frontend (Admin): - Добавлено поле privacy_policy_link в настройки (settings.js) - Добавлена настройка ссылки на политику конфиденциальности в GeneralView.vue - Обновлен CustomersView.vue: * Добавлена колонка privacy_consented_at с отображением даты согласия * Добавлена поддержка help-текста для колонок с иконкой вопроса и tooltip * Добавлены help-тексты для колонок last_seen_at, privacy_consented_at, created_at * Улучшено форматирование кода --- frontend/admin/src/stores/settings.js | 1 + frontend/admin/src/views/CustomersView.vue | 204 ++++++++++++++---- frontend/admin/src/views/GeneralView.vue | 11 + frontend/spa/src/App.vue | 4 +- frontend/spa/src/components/PrivacyPolicy.vue | 42 ++++ frontend/spa/src/main.js | 18 +- frontend/spa/src/stores/SettingsStore.js | 3 + frontend/spa/src/utils/ftch.js | 8 + .../Handlers/TelegramCustomersHandler.php | 2 + ...nsented_at_to_telecart_customers_table.php | 16 ++ .../framework/Telegram/TelegramService.php | 30 ++- .../Telegram/TelegramServiceProvider.php | 6 +- .../src/Handlers/PrivacyPolicyHandler.php | 73 +++++++ .../src/Handlers/SettingsHandler.php | 1 + .../upload/oc_telegram_shop/src/routes.php | 5 +- .../tests/Telegram/TelegramServiceTest.php | 6 +- 16 files changed, 378 insertions(+), 52 deletions(-) create mode 100644 frontend/spa/src/components/PrivacyPolicy.vue create mode 100644 module/oc_telegram_shop/upload/oc_telegram_shop/database/migrations/20260101000006_add_privacy_consented_at_to_telecart_customers_table.php create mode 100644 module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/PrivacyPolicyHandler.php diff --git a/frontend/admin/src/stores/settings.js b/frontend/admin/src/stores/settings.js index 3beed18..4e40bec 100644 --- a/frontend/admin/src/stores/settings.js +++ b/frontend/admin/src/stores/settings.js @@ -17,6 +17,7 @@ export const useSettingsStore = defineStore('settings', { theme_light: 'light', theme_dark: 'dark', app_debug: false, + privacy_policy_link: null, }, telegram: { diff --git a/frontend/admin/src/views/CustomersView.vue b/frontend/admin/src/views/CustomersView.vue index 106835e..14a992d 100644 --- a/frontend/admin/src/views/CustomersView.vue +++ b/frontend/admin/src/views/CustomersView.vue @@ -67,13 +67,16 @@ -