diff --git a/apps/bot/src/index.ts b/apps/bot/src/index.ts
index 01c3d3e..efd3c56 100644
--- a/apps/bot/src/index.ts
+++ b/apps/bot/src/index.ts
@@ -1,7 +1,21 @@
/* eslint-disable canonical/id-match */
/* eslint-disable consistent-return */
import { env as environment } from './config/env';
-import { commandsList, KEYBOARD_REMOVE, KEYBOARD_SHARE_PHONE, MESSAGE_NOT_MASTER } from './message';
+import {
+ commandsList,
+ KEYBOARD_REMOVE,
+ KEYBOARD_SHARE_PHONE,
+ MESSAGE_NOT_MASTER,
+ MSG_ALREADY_MASTER,
+ MSG_BECOME_MASTER,
+ MSG_CONTACT_ADDED,
+ MSG_ERROR,
+ MSG_NEED_PHONE,
+ MSG_PHONE_SAVED,
+ MSG_SEND_CLIENT_CONTACT,
+ MSG_WELCOME,
+ MSG_WELCOME_BACK,
+} from './message';
import { normalizePhoneNumber } from './utils/phone';
import { CustomersService } from '@repo/graphql/api/customers';
import { Enum_Customer_Role } from '@repo/graphql/types';
@@ -17,17 +31,13 @@ bot.start(async (context) => {
const { customer } = await customerService.getCustomer({ telegramId });
if (customer) {
- return context.reply(
- `Приветствуем снова, ${customer.name} 👋.
-Чтобы воспользоваться сервисом, откройте приложение.` + commandsList,
- KEYBOARD_REMOVE,
- );
+ return context.reply(MSG_WELCOME_BACK(customer.name) + commandsList, {
+ ...KEYBOARD_REMOVE,
+ parse_mode: 'HTML',
+ });
}
- return context.reply(
- 'Добро пожаловать! Пожалуйста, поделитесь своим номером телефона.',
- KEYBOARD_SHARE_PHONE,
- );
+ return context.reply(MSG_WELCOME, { ...KEYBOARD_SHARE_PHONE, parse_mode: 'HTML' });
});
bot.command('addcontact', async (context) => {
@@ -37,17 +47,14 @@ bot.command('addcontact', async (context) => {
const { customer } = await customerService.getCustomer({ telegramId });
if (!customer) {
- return context.reply(
- 'Чтобы добавить контакт, сначала поделитесь своим номером телефона.',
- KEYBOARD_SHARE_PHONE,
- );
+ return context.reply(MSG_NEED_PHONE, { ...KEYBOARD_SHARE_PHONE, parse_mode: 'HTML' });
}
if (customer.role !== Enum_Customer_Role.Master) {
- return context.reply(MESSAGE_NOT_MASTER);
+ return context.reply(MESSAGE_NOT_MASTER, { parse_mode: 'HTML' });
}
- return context.reply('Отправьте контакт клиента, которого вы хотите добавить');
+ return context.reply(MSG_SEND_CLIENT_CONTACT, { parse_mode: 'HTML' });
});
bot.command('becomemaster', async (context) => {
@@ -57,11 +64,11 @@ bot.command('becomemaster', async (context) => {
const { customer } = await customerService.getCustomer({ telegramId });
if (!customer) {
- return context.reply('Сначала поделитесь своим номером телефона.', KEYBOARD_SHARE_PHONE);
+ return context.reply(MSG_NEED_PHONE, { ...KEYBOARD_SHARE_PHONE, parse_mode: 'HTML' });
}
if (customer.role === Enum_Customer_Role.Master) {
- return context.reply('Вы уже являетесь мастером.');
+ return context.reply(MSG_ALREADY_MASTER, { parse_mode: 'HTML' });
}
const response = await customerService
@@ -71,11 +78,11 @@ bot.command('becomemaster', async (context) => {
},
})
.catch((error) => {
- context.reply('Произошла ошибка.\n' + error);
+ context.reply(MSG_ERROR(error), { parse_mode: 'HTML' });
});
if (response) {
- return context.reply('Вы стали мастером');
+ return context.reply(MSG_BECOME_MASTER, { parse_mode: 'HTML' });
}
});
@@ -99,19 +106,18 @@ bot.on(message('contact'), async (context) => {
telegramId: context.from.id,
})
.catch((error) => {
- context.reply('Произошла ошибка.\n' + error);
+ context.reply(MSG_ERROR(error), { parse_mode: 'HTML' });
});
if (response) {
- return context.reply(
- `Спасибо! Мы сохранили ваш номер телефона. Теперь можете открыть приложение или воспользоваться командами бота.` +
- commandsList,
- KEYBOARD_REMOVE,
- );
+ return context.reply(MSG_PHONE_SAVED + commandsList, {
+ ...KEYBOARD_REMOVE,
+ parse_mode: 'HTML',
+ });
}
} else {
if (customer.role !== Enum_Customer_Role.Master) {
- return context.reply(MESSAGE_NOT_MASTER);
+ return context.reply(MESSAGE_NOT_MASTER, { parse_mode: 'HTML' });
}
try {
@@ -130,11 +136,9 @@ bot.on(message('contact'), async (context) => {
documentId,
});
- return context.reply(
- `Добавили контакт ${name}. Пригласите пользователя в приложение и тогда вы сможете добавлять записи с этим контактом.`,
- );
+ return context.reply(MSG_CONTACT_ADDED(name), { parse_mode: 'HTML' });
} catch (error) {
- context.reply('Произошла ошибка.\n' + error);
+ context.reply(MSG_ERROR(error), { parse_mode: 'HTML' });
}
}
});
diff --git a/apps/bot/src/message.ts b/apps/bot/src/message.ts
index 54b61f6..b270cf1 100644
--- a/apps/bot/src/message.ts
+++ b/apps/bot/src/message.ts
@@ -1,8 +1,9 @@
import { type ReplyKeyboardRemove } from 'telegraf/types';
export const commandsList = `
-\nДоступные команды:
- /addcontact - Добавить контакт клиента
+\n📋 Доступные команды:
+• /addcontact — добавить контакт клиента
+• /becomemaster — стать мастером
`;
export const KEYBOARD_SHARE_PHONE = {
@@ -11,7 +12,7 @@ export const KEYBOARD_SHARE_PHONE = {
[
{
request_contact: true,
- text: 'Отправить номер телефона',
+ text: '📱 Отправить номер телефона',
},
],
],
@@ -26,4 +27,29 @@ export const KEYBOARD_REMOVE = {
};
export const MESSAGE_NOT_MASTER =
- 'Только мастер может добавлять контакты. \nСтать мастером можно на странице профиля в приложении или при помощи команды /becomemaster';
+ '⛔️ Только мастер может добавлять контакты.\nСтать мастером можно на странице профиля в приложении или с помощью команды /becomemaster.';
+
+export const MSG_WELCOME =
+ '👋 Добро пожаловать!\nПожалуйста, поделитесь своим номером телефона для регистрации.';
+
+export const MSG_WELCOME_BACK = (name: string) =>
+ `👋 С возвращением, ${name}!\nЧтобы воспользоваться сервисом, откройте приложение.\n`;
+
+export const MSG_NEED_PHONE =
+ '📱 Чтобы добавить контакт, сначала поделитесь своим номером телефона.';
+
+export const MSG_SEND_CLIENT_CONTACT =
+ '👤 Отправьте контакт клиента, которого вы хотите добавить.';
+
+export const MSG_ALREADY_MASTER = '🎉 Вы уже являетесь мастером!';
+
+export const MSG_BECOME_MASTER = '🥳 Поздравляем! Теперь вы мастер.';
+
+export const MSG_ERROR = (error?: unknown) =>
+ `❌ Произошла ошибка.\n${error ? String(error) : ''}`;
+
+export const MSG_PHONE_SAVED =
+ '✅ Спасибо! Мы сохранили ваш номер телефона.\nТеперь вы можете открыть приложение или воспользоваться командами бота.';
+
+export const MSG_CONTACT_ADDED = (name: string) =>
+ `✅ Добавили контакт: ${name}\nПригласите пользователя в приложение, чтобы вы могли добавлять записи с этим контактом.`;