Files
test_deploy/internal/constants/notifications.go
Alex Shevchuk d84487d238 1
2025-08-18 17:12:04 +03:00

183 lines
7.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package constants
const (
EmailNotificationMessageType = "email"
RegistrationNotificationMessageSubject = "Регистрация пользователя в системе приложения Molva"
RegistrationNewUserAdmin = "Зарегистрирован новый пользователь приложения"
EmailVerificationMessageSubject = "Подтверждение адреса электронной почты"
TextNotificationContentType = "text/plain"
HTMLNotificationContentType = "text/html"
RegistrationNotificationText = `
Добро пожаловать в Molva!
Здравствуйте, %s!
Спасибо за регистрацию в Molva. Мы рады видеть вас в нашем сообществе.
Теперь вы можете:
- Получать персонализированные уведомления.
- Настраивать свои предпочтения.
- Использовать все возможности платформы.
Если у вас есть вопросы, не стесняйтесь обращаться в нашу службу поддержки!
После проверки аккаунта наш администратор с вами свяжется
С уважением, команда Molva.
Это письмо отправлено автоматически, пожалуйста, не отвечайте на него.
`
//nolint:gosec // there are no [potentially hardcoded] credentials in this message
ForgotPasswordNotificationMessageSubject = "Восстановление пароля в системе приложения Molva"
//nolint:gosec // there are no [potentially hardcoded] credentials in this message
ForgotPasswordNotificationText = `
Ваш код восстановления пароля: %s. Его можно использовать, чтобы сбросить пароль и зайти в свой аккаунт в Molva.
Если Вы не запрашивали восстановление доступа к аккаунту, пожалуйста, проигнорируйте это письмо.
С уважением, команда Molva.
`
)
const EmailVerificationTemplate = `<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="margin: 0; padding: 20px; font-family: Arial, sans-serif; background-color: #f5f5f5;">
<div style="max-width: 600px; margin: 0 auto; background-color: #ffffff; padding: 40px; border-radius: 8px;">
<h1 style="color: #333; font-size: 24px; margin: 0 0 30px 0;">MOLVA</h1>
<h2 style="color: #333; font-size: 20px; margin: 0 0 20px 0;">Подтвердите email</h2>
<p style="color: #555; font-size: 16px; line-height: 24px; margin: 0 0 10px 0;">
Здравствуйте, %s!
</p>
<p style="color: #555; font-size: 16px; line-height: 24px; margin: 0 0 30px 0;">
Для завершения регистрации подтвердите ваш email адрес.
</p>
<a href="%s" style="display: inline-block; padding: 12px 30px; background-color: #4A90E2; color: #ffffff; text-decoration: none; border-radius: 4px; font-size: 16px;">
Подтвердить email
</a>
<p style="color: #999; font-size: 14px; line-height: 20px; margin: 30px 0 10px 0;">
Или скопируйте ссылку:
</p>
<p style="color: #4A90E2; font-size: 14px; line-height: 20px; word-break: break-all; margin: 0 0 30px 0;">
%s
</p>
<p style="color: #999; font-size: 13px; line-height: 18px; margin: 0;">
Ссылка действительна 24 часа.
</p>
</div>
</body>
</html>`
const EmailConfirmationPage = `<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Подтверждение Email</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f5f5f5;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.container {
background: #ffffff;
padding: 40px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
text-align: center;
max-width: 400px;
width: 100%;
}
.title {
color: #333;
margin-bottom: 20px;
font-size: 22px;
}
.message {
color: #555;
font-size: 16px;
margin-bottom: 30px;
}
.close-note {
color: #777;
font-size: 14px;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="title" id="status-title">Идёт подтверждение...</div>
<div class="message" id="status-message">Пожалуйста, подождите.</div>
<div class="close-note" id="close-note" style="display:none;">
Вы можете закрыть это окно.
</div>
</div>
<script>
(function() {
fetch("{{.VerificationURL}}", {
method: "PATCH",
headers: {
"Content-Type": "application/json"
}
})
.then(response => {
const titleEl = document.getElementById("status-title");
const msgEl = document.getElementById("status-message");
const closeEl = document.getElementById("close-note");
if (response.ok) {
titleEl.innerText = "Email успешно подтверждён!";
msgEl.innerText = "Спасибо за подтверждение. Теперь вы можете вернуться на сайт MOLVA!";
msgEl.style.color = "green";
} else if (response.status === 400 || response.status === 404) {
titleEl.innerText = "Неверная ссылка или токен";
msgEl.innerText = "Проверьте правильность ссылки или запросите новую.";
msgEl.style.color = "red";
} else {
titleEl.innerText = "Ошибка сервера";
msgEl.innerText = "Попробуйте повторить позднее.";
msgEl.style.color = "red";
}
closeEl.style.display = "block";
})
.catch(() => {
const titleEl = document.getElementById("status-title");
const msgEl = document.getElementById("status-message");
const closeEl = document.getElementById("close-note");
titleEl.innerText = "Не удалось подключиться";
msgEl.innerText = "Проверьте интернет-соединение и попробуйте снова.";
msgEl.style.color = "red";
closeEl.style.display = "block";
});
})();
</script>
</body>
</html>`
const EmailNewUserRegistrationAdminMessage = `
Зарегистрирован новый пользователь. Email подтверждён
Email: %s
Name: %s
Type: %s
`