Files
NeveTimePanel/TICKETS_SYSTEM.md

5.6 KiB
Raw Blame History

🎫 Система тикетов

Что добавлено

Новые возможности

  1. Система тикетов - полноценная система поддержки с чатом

  2. Три статуса тикетов:

    • 🟡 На рассмотрении (pending) - новый тикет
    • 🔵 В работе (in_progress) - тикет взят в работу
    • 🟢 Закрыт (closed) - тикет решён
  3. Новая роль "Тех. поддержка" (support):

    • Доступ ко всем тикетам
    • Возможность менять статусы тикетов
    • Возможность отвечать на тикеты
  4. Кнопка "Тикеты" в header рядом с кнопкой "Пользователи"

📋 Возможности по ролям

Обычные пользователи (user)

  • Создавать тикеты
  • Просматривать свои тикеты
  • Отправлять сообщения в свои тикеты
  • Менять статусы тикетов
  • Видеть чужие тикеты

Тех. поддержка (support)

  • Просматривать все тикеты
  • Отвечать на любые тикеты
  • Менять статусы тикетов
  • Закрывать тикеты
  • Управлять пользователями
  • Управлять серверами

Администраторы (admin)

  • Все возможности тех. поддержки
  • Управление пользователями
  • Управление серверами
  • Назначение ролей

🚀 Как использовать

Создание тикета

  1. Нажмите кнопку "Тикеты" в header
  2. Нажмите "Создать тикет"
  3. Заполните тему и описание проблемы
  4. Нажмите "Создать"

Работа с тикетом

  1. Откройте список тикетов
  2. Нажмите на нужный тикет
  3. Пишите сообщения в чат
  4. Тех. поддержка и админы могут менять статус тикета

Назначение роли "Тех. поддержка"

  1. Войдите как администратор (none / none)
  2. Нажмите кнопку "Пользователи"
  3. Найдите нужного пользователя
  4. В выпадающем списке выберите "Тех. поддержка"
  5. Роль изменится автоматически

📁 Новые файлы

Backend

  • backend/tickets.json - хранилище тикетов (создаётся автоматически)
  • Добавлены endpoints в backend/main.py:
    • GET /api/tickets - список тикетов
    • POST /api/tickets/create - создать тикет
    • GET /api/tickets/{id} - получить тикет
    • POST /api/tickets/{id}/message - добавить сообщение
    • PUT /api/tickets/{id}/status - изменить статус

Frontend

  • frontend/src/components/Tickets.jsx - список тикетов
  • frontend/src/components/TicketChat.jsx - чат тикета
  • frontend/src/components/CreateTicketModal.jsx - создание тикета

🎨 Интерфейс

Список тикетов

  • Карточки с информацией о тикете
  • Цветные индикаторы статуса
  • Количество сообщений
  • Дата создания
  • Автор тикета

Чат тикета

  • Сообщения в реальном времени (обновление каждые 3 секунды)
  • Системные сообщения о смене статуса
  • Кнопки смены статуса (для тех. поддержки и админов)
  • Отправка сообщений (если тикет не закрыт)

🔧 Технические детали

Статусы тикетов

pending      // На рассмотрении (жёлтый)
in_progress  // В работе (синий)
closed       // Закрыт (зелёный)

Роли пользователей

user    // Обычный пользователь
support // Тех. поддержка
admin   // Администратор

Структура тикета

{
  "id": "1",
  "title": "Проблема с сервером",
  "description": "Описание проблемы",
  "author": "username",
  "status": "pending",
  "created_at": "2024-01-14T12:00:00",
  "updated_at": "2024-01-14T12:00:00",
  "messages": [
    {
      "author": "username",
      "text": "Текст сообщения",
      "timestamp": "2024-01-14T12:00:00"
    }
  ]
}

Готово!

Система тикетов полностью интегрирована в MC Panel. Пользователи могут создавать тикеты, а тех. поддержка и администраторы могут на них отвечать и управлять статусами.

Учётные данные по умолчанию

  • Логин: Sofa12345
  • Пароль: arkonsad123
  • Роль: admin

Для создания пользователя тех. поддержки:

  1. Зарегистрируйте нового пользователя
  2. Войдите как админ
  3. Назначьте ему роль "Тех. поддержка"