Files
NeveTimePanel/TICKETS_SYSTEM.md

144 lines
5.6 KiB
Markdown
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.
# 🎫 Система тикетов
## Что добавлено
### ✅ Новые возможности
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 секунды)
- Системные сообщения о смене статуса
- Кнопки смены статуса (для тех. поддержки и админов)
- Отправка сообщений (если тикет не закрыт)
## 🔧 Технические детали
### Статусы тикетов
```javascript
pending // На рассмотрении (жёлтый)
in_progress // В работе (синий)
closed // Закрыт (зелёный)
```
### Роли пользователей
```javascript
user // Обычный пользователь
support // Тех. поддержка
admin // Администратор
```
### Структура тикета
```json
{
"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. Назначьте ему роль "Тех. поддержка"