144 lines
5.6 KiB
Markdown
144 lines
5.6 KiB
Markdown
# 🎫 Система тикетов
|
||
|
||
## Что добавлено
|
||
|
||
### ✅ Новые возможности
|
||
|
||
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. Назначьте ему роль "Тех. поддержка"
|