новый дизайн

This commit is contained in:
2026-07-25 18:36:45 +04:00
parent df7f98fe8b
commit c43a73e148
54 changed files with 4234 additions and 1110 deletions
+109
View File
@@ -0,0 +1,109 @@
<script setup>
import { Head } from '@inertiajs/vue3';
import { computed } from 'vue';
import LegalDocument from '../../Components/LegalDocument.vue';
import PortalLayout from '../../Layouts/PortalLayout.vue';
const props = defineProps({
site: { type: Object, required: true },
auth: { type: Object, required: true },
urls: { type: Object, required: true },
legal: { type: Object, required: true },
});
const sections = computed(() => [
{
id: 'general',
title: 'Общие положения',
paragraphs: [
`Настоящий документ является публичным предложением ${props.legal.operator_name} заключить соглашение об использовании сервисов проекта ${props.site.name} на изложенных ниже условиях.`,
'Пользователем считается дееспособное лицо, которое зарегистрировало игровой аккаунт, использует сайт, лаунчер или игровые сервисы проекта. Регистрация аккаунта, использование сервисов либо совершение платежа означает полное и безоговорочное принятие условий оферты.',
'Проект является неофициальным фанатским проектом и не связан с Blizzard Entertainment, Inc. Все права на упомянутые товарные знаки и игровые материалы принадлежат их правообладателям.',
],
},
{
id: 'service',
title: 'Предмет соглашения',
paragraphs: [
'Администрация предоставляет Пользователю ограниченный, отзывный и непередаваемый доступ к сайту, личному кабинету, лаунчеру и игровому серверу в их текущем состоянии.',
'Доступ предоставляется исключительно для личного некоммерческого использования. Игровой аккаунт, персонажи, внутриигровые предметы и виртуальная валюта не являются собственностью Пользователя и не имеют гарантированной денежной стоимости.',
],
items: [
'создание и использование одного или нескольких игровых аккаунтов по правилам проекта;',
'доступ к персонажам, игровому прогрессу и функциям личного кабинета;',
'получение обновлений клиента через лаунчер;',
'приобретение виртуальной валюты «Слёзы Элуны» для использования внутри проекта.',
],
},
{
id: 'payments',
title: 'Платежи и виртуальная валюта',
paragraphs: [
'Пользователь вправе добровольно пополнять баланс личного кабинета. Размер начисления, курс, минимальная и максимальная сумма отображаются до совершения платежа.',
'Оплата проводится сторонним платёжным оператором. Администрация не получает и не хранит полные реквизиты банковской карты. Обязательство по начислению считается исполненным после подтверждения успешной оплаты платёжным оператором и отражения суммы в личном кабинете.',
'Слёзы Элуны используются только внутри проекта, не являются электронными деньгами, ценной бумагой или средством платежа и не подлежат обмену между пользователями на реальные деньги.',
],
},
{
id: 'refunds',
title: 'Возвраты и ошибки начисления',
paragraphs: [
'При технической ошибке, двойном списании или отсутствии начисления Пользователь должен обратиться в поддержку и сообщить логин аккаунта, дату, сумму и идентификатор платежа.',
'Решение о возврате принимается с учётом статуса платежа и факта использования начисленной виртуальной валюты. Если цифровое предоставление началось с согласия Пользователя и начисление уже использовано полностью или частично, возврат может быть ограничен в пределах, допускаемых применимым законодательством.',
'Возврат при наличии оснований производится тем же способом, которым была совершена оплата, если иной порядок не согласован сторонами.',
],
},
{
id: 'rules',
title: 'Права и обязанности',
paragraphs: [
'Пользователь обязан предоставлять достоверные данные, обеспечивать сохранность учётных данных, соблюдать правила проекта и не нарушать работу сайта, лаунчера и игрового сервера.',
'Запрещены автоматизация игрового процесса без разрешения, вмешательство в программный код или сетевой обмен, эксплуатация ошибок, мошенничество, продажа аккаунтов и виртуальных ценностей за реальные деньги, а также действия, нарушающие права других лиц.',
'Администрация вправе обновлять сервисы, проводить технические работы, исправлять баланс и игровые ошибки, а при нарушении правил — ограничивать или прекращать доступ к аккаунту.',
],
},
{
id: 'liability',
title: 'Ответственность',
paragraphs: [
'Сервисы предоставляются «как есть». Администрация стремится обеспечивать стабильную работу, но не гарантирует непрерывность доступа, отсутствие ошибок или сохранение конкретных игровых механик и значений.',
'Стороны освобождаются от ответственности за неисполнение обязательств вследствие обстоятельств непреодолимой силы, сбоев инфраструктуры третьих лиц, действий государственных органов и иных обстоятельств вне разумного контроля.',
'Ничто в оферте не ограничивает права Пользователя, которые не могут быть ограничены по закону.',
],
},
{
id: 'changes',
title: 'Изменение и прекращение',
paragraphs: [
'Администрация вправе изменять оферту. Новая редакция публикуется на этой странице и применяется с указанной даты вступления в силу. Продолжение использования сервисов после этой даты означает согласие с новой редакцией.',
'Пользователь может прекратить использование сервисов в любое время. Администрация может прекратить работу проекта или отдельных функций, уведомив пользователей доступным способом, когда это разумно возможно.',
],
},
{
id: 'contacts',
title: 'Контакты и споры',
paragraphs: [
`По вопросам платежей, доступа и условий оферты напишите на ${props.legal.contact_email}. Обращение должно содержать достаточно информации для идентификации аккаунта и ситуации.`,
'Стороны стремятся урегулировать разногласия путём переговоров. Если договориться не удаётся, спор разрешается в порядке, установленном применимым законодательством.',
],
note: `Исполнитель: ${props.legal.operator_name}. Контактный адрес: ${props.legal.contact_email}.`,
},
]);
</script>
<template>
<Head>
<title>Публичная оферта — {{ site.name }}</title>
<meta name="description" content="Публичная оферта игрового проекта MoonWell." />
</Head>
<PortalLayout :site="site" :auth="auth" :urls="urls">
<LegalDocument
eyebrow="Юридическая информация"
title="Публичная оферта"
description="Условия доступа к сервисам MoonWell, пополнения баланса и использования виртуальной валюты."
:effective-date="legal.effective_date"
:sections="sections"
/>
</PortalLayout>
</template>
+117
View File
@@ -0,0 +1,117 @@
<script setup>
import { Head } from '@inertiajs/vue3';
import { computed } from 'vue';
import LegalDocument from '../../Components/LegalDocument.vue';
import PortalLayout from '../../Layouts/PortalLayout.vue';
const props = defineProps({
site: { type: Object, required: true },
auth: { type: Object, required: true },
urls: { type: Object, required: true },
legal: { type: Object, required: true },
});
const sections = computed(() => [
{
id: 'scope',
title: 'Область действия',
paragraphs: [
`Настоящая политика описывает, как ${props.legal.operator_name} обрабатывает информацию пользователей сайта, личного кабинета, лаунчера и игрового сервера ${props.site.name}.`,
'Используя сервисы проекта или создавая аккаунт, Пользователь подтверждает, что ознакомился с этой политикой. Если Пользователь не согласен с условиями обработки, ему следует прекратить использование сервисов.',
],
},
{
id: 'data',
title: 'Какие данные мы обрабатываем',
paragraphs: [
'Состав данных зависит от используемых функций. Мы стремимся собирать только информацию, необходимую для работы проекта, безопасности и исполнения запросов Пользователя.',
],
items: [
'данные аккаунта: логин, email, пароль в виде криптографического проверочного значения, дата регистрации и последнего входа;',
'игровые данные: персонажи, прогресс, предметы, внутриигровые операции и дисциплинарный статус;',
'технические данные: IP-адрес, тип устройства и браузера, версия клиента, журналы авторизации и сведения об ошибках;',
'платёжные данные: сумма, валюта, статус и идентификатор операции; полные реквизиты банковских карт обрабатывает платёжный оператор;',
'данные обращений в поддержку и иная информация, которую Пользователь сообщает добровольно.',
],
},
{
id: 'purposes',
title: 'Цели и основания обработки',
paragraphs: [
'Данные используются для заключения и исполнения пользовательского соглашения, предоставления игровых функций, выполнения платежей, защиты проекта и пользователей, ответа на обращения и соблюдения требований закона.',
'В случаях, когда применимое законодательство требует согласия, обработка выполняется на основании согласия Пользователя. Отдельные данные могут обрабатываться для исполнения договора, выполнения юридической обязанности или защиты законных интересов проекта, если такие интересы не нарушают права Пользователя.',
],
},
{
id: 'cookies',
title: 'Cookies и аналитика',
paragraphs: [
'Сайт использует технические cookies и сведения сессии, необходимые для авторизации, защиты форм и сохранения настроек. Их отключение может сделать часть функций недоступной.',
'Также может использоваться веб-аналитика для оценки посещаемости и улучшения интерфейса. Аналитический сервис может получать обезличенные или псевдонимизированные технические сведения в соответствии со своими условиями.',
],
},
{
id: 'sharing',
title: 'Передача третьим лицам',
paragraphs: [
'Мы не продаём персональные данные. Информация передаётся только в объёме, необходимом для работы сервиса или исполнения требований закона.',
],
items: [
'платёжному оператору — для проведения платежа и обработки возврата;',
'поставщикам хостинга, хранения файлов, мониторинга и защиты инфраструктуры;',
'консультантам и подрядчикам, связанным обязанностью конфиденциальности;',
'государственным органам — при наличии законного и обязательного требования.',
],
},
{
id: 'storage',
title: 'Хранение и защита',
paragraphs: [
'Данные хранятся столько, сколько необходимо для указанных целей, разрешения споров, предотвращения злоупотреблений и выполнения юридических обязанностей. Конкретный срок зависит от категории данных и статуса аккаунта.',
'Мы применяем разумные организационные и технические меры: разграничение доступа, криптографическую защиту учётных данных, журналы безопасности и резервное копирование. При этом ни один способ передачи и хранения данных не может гарантировать абсолютную безопасность.',
],
},
{
id: 'rights',
title: 'Права пользователя',
paragraphs: [
'В пределах применимого законодательства Пользователь может запросить сведения об обработке, исправление неточных данных, удаление или ограничение обработки, отозвать согласие и возразить против отдельных способов обработки.',
`Для реализации прав направьте запрос на ${props.legal.contact_email}. Мы можем запросить подтверждение, необходимое для защиты аккаунта от несанкционированного доступа. Отзыв согласия не влияет на законность обработки, выполненной до его отзыва.`,
],
},
{
id: 'children',
title: 'Несовершеннолетние',
paragraphs: [
'Сервисы не предназначены для самостоятельного совершения платежей лицами, которые по применимому законодательству не вправе заключать такие соглашения без участия законного представителя.',
'Если законный представитель считает, что данные несовершеннолетнего были предоставлены без надлежащего согласия, он может обратиться по контактному адресу для проверки и удаления данных.',
],
},
{
id: 'updates',
title: 'Изменения и контакты',
paragraphs: [
'Политика может обновляться при изменении сервисов или требований законодательства. Актуальная редакция всегда размещается на этой странице с новой датой вступления в силу.',
`Оператор обработки: ${props.legal.operator_name}. Вопросы о конфиденциальности и запросы Пользователей принимаются по адресу ${props.legal.contact_email}.`,
],
note: 'Не отправляйте в обращении пароль, полные реквизиты банковской карты или иные секретные данные.',
},
]);
</script>
<template>
<Head>
<title>Политика конфиденциальности — {{ site.name }}</title>
<meta name="description" content="Политика обработки и защиты данных пользователей MoonWell." />
</Head>
<PortalLayout :site="site" :auth="auth" :urls="urls">
<LegalDocument
eyebrow="Защита данных"
title="Политика конфиденциальности"
description="Какие данные использует MoonWell, зачем они нужны и как пользователь может управлять ими."
:effective-date="legal.effective_date"
:sections="sections"
/>
</PortalLayout>
</template>