Compare commits

...

2 Commits

Author SHA1 Message Date
vchikalkin
4004a73888 Refactor phone agreement localization and enhance user consent messaging
- Updated the Russian localization file to streamline the phone sharing agreement, improving clarity on user consent for data processing.
- Modified the contact addition and welcome messages to incorporate the new agreement format, ensuring users are informed about their consent to share personal data.
2025-10-07 18:19:02 +03:00
vchikalkin
b0af20140b Add privacy agreement and update environment variables
- Introduced `PRIVACY_URL` to the environment configuration for dynamic linking.
- Updated localization files to include a user consent agreement for sharing phone numbers, linking to the offer and privacy URLs.
- Enhanced welcome and contact addition messages to incorporate the new consent clause, improving user clarity on data handling.
2025-10-07 18:04:12 +03:00
5 changed files with 46 additions and 7 deletions

View File

@ -56,6 +56,15 @@ btn-open-app = 📱 Открыть приложение
btn-back = ◀️ Назад
# Согласие
agreement =
<i>вы:
- соглашаетесь с <a href='{ $offerUrl }'>Публичной офертой</a>
- подтверждаете согласие на обработку персональных данных согласно <a href='{ $privacyUrl }'>Политике конфиденциальности</a></i>
share-phone-agreement =
<i> Нажимая кнопку <b>«Отправить номер телефона»</b></i>,
# Приветственные сообщения
msg-welcome =
👋 Добро пожаловать!
@ -64,14 +73,14 @@ msg-welcome-back = 👋 С возвращением, { $name }!
# Сообщения о телефоне
msg-need-phone = 📱 Чтобы добавить контакт, сначала поделитесь своим номером телефона
msg-need-phone = 📱 Чтобы добавить контакт, сначала поделитесь своим номером телефона.
msg-phone-saved =
✅ Спасибо! Мы сохранили ваш номер телефона
Теперь вы можете открыть приложение или воспользоваться командами бота
msg-already-registered =
✅ Вы уже зарегистрированы в системе
Для смены номера телефона обратитесь в поддержку (Контакты в профиле бота)
<i>Для смены номера телефона обратитесь в поддержку (Контакты в профиле бота)</i>
msg-invalid-phone = ❌ Некорректный номер телефона. Пример: +79999999999
# Сообщения о контактах
@ -85,7 +94,7 @@ msg-contact-added =
✅ Добавили { $fullname } в список ваших контактов
Пригласите пользователя в приложение, чтобы вы могли добавлять с ним записи
msg-contact-forward = Перешлите пользователю следующее сообщение, чтобы он мог начать пользоваться ботом ⬇️
msg-contact-forward = <i>Перешлите пользователю следующее сообщение, чтобы он мог начать пользоваться ботом ⬇️</i>
# Сообщения для шаринга
msg-share-bot =

View File

@ -1,6 +1,7 @@
/* eslint-disable sonarjs/cognitive-complexity */
/* eslint-disable id-length */
import { type Context } from '@/bot/context';
import { env } from '@/config/env';
import { KEYBOARD_SHARE_BOT, KEYBOARD_SHARE_PHONE } from '@/config/keyboards';
import { parseContact } from '@/utils/contact';
import { combine } from '@/utils/messages';
@ -21,8 +22,18 @@ export async function addContact(conversation: Conversation<Context, Context>, c
if (!customer) {
return ctx.reply(
await conversation.external(({ t }) => t('msg-need-phone')),
KEYBOARD_SHARE_PHONE,
await conversation.external(({ t }) =>
combine(
t('msg-need-phone'),
t('share-phone-agreement') +
' ' +
t('agreement', {
offerUrl: env.OFFER_URL,
privacyUrl: env.PRIVACY_URL,
}),
),
),
{ ...KEYBOARD_SHARE_PHONE, parse_mode: 'HTML' },
);
}

View File

@ -1,6 +1,8 @@
import { type Context } from '@/bot/context';
import { logHandle } from '@/bot/helpers/logging';
import { env } from '@/config/env';
import { KEYBOARD_SHARE_PHONE, mainMenu } from '@/config/keyboards';
import { combine } from '@/utils/messages';
import { RegistrationService } from '@repo/graphql/api/registration';
import { Composer } from 'grammy';
@ -22,7 +24,21 @@ feature.command('start', logHandle('command-start'), async (ctx) => {
}
// Новый пользователь — просим поделиться номером
return ctx.reply(ctx.t('msg-welcome'), { ...KEYBOARD_SHARE_PHONE, parse_mode: 'HTML' });
return ctx.reply(
combine(
ctx.t('msg-welcome'),
ctx.t('share-phone-agreement') +
' ' +
ctx.t('agreement', {
offerUrl: env.OFFER_URL,
privacyUrl: env.PRIVACY_URL,
}),
),
{
...KEYBOARD_SHARE_PHONE,
parse_mode: 'HTML',
},
);
});
export { composer as welcome };

View File

@ -4,6 +4,8 @@ export const envSchema = z.object({
BOT_PROVIDER_TOKEN: z.string(),
BOT_TOKEN: z.string(),
BOT_URL: z.string(),
OFFER_URL: z.string(),
PRIVACY_URL: z.string(),
RATE_LIMIT: z
.string()
.transform((value) => Number.parseInt(value, 10))

View File

@ -18,7 +18,8 @@
"REDIS_HOST",
"REDIS_PORT",
"REDIS_PASSWORD",
"OFFER_URL"
"OFFER_URL",
"PRIVACY_URL"
]
},
"lint": {