feat: Оптимизация навигации AdminJS в логические группы
- Объединены ресурсы в 5 логических групп: Контент сайта, Бронирования, Отзывы и рейтинги, Персонал и гиды, Администрирование - Удалены дублирующие настройки navigation для чистой группировки - Добавлены CSS стили для визуального отображения иерархии с отступами - Добавлены эмодзи-иконки для каждого типа ресурсов через CSS - Улучшена навигация с правильной вложенностью элементов
This commit is contained in:
111
CALENDAR_GUIDE.md
Normal file
111
CALENDAR_GUIDE.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Календарь гидов и улучшенная система бронирования
|
||||
|
||||
## 📅 Новая функция: Календарь гидов
|
||||
|
||||
В разделе "Управление гидами" добавлен интерактивный календарь, который показывает:
|
||||
|
||||
### Возможности календаря:
|
||||
- **Рабочие дни гидов** - отображение расписания по дням недели
|
||||
- **Выходные дни** - отпуска и нерабочие дни гидов
|
||||
- **Загруженность** - количество бронирований на каждый день
|
||||
- **Фильтрация** - возможность выбора конкретных гидов для отображения
|
||||
- **Навигация по месяцам** - просмотр расписания на разные периоды
|
||||
|
||||
### Доступ к календарю:
|
||||
1. Через админ панель: Управление гидами → Расписание гидов → кнопка "📅 Открыть календарь"
|
||||
2. Через дашборд: главная страница админки → карточка "Календарь гидов"
|
||||
3. Прямая ссылка: `/admin/pages/calendar`
|
||||
|
||||
### Легенда календаря:
|
||||
- 🟢 **Зеленый** - рабочий день, свободен
|
||||
- 🟡 **Желтый** - рабочий день, частично занят
|
||||
- 🔴 **Красный** - выходной день
|
||||
- ⚫ **Серый** - не работает в этот день недели
|
||||
|
||||
## 🔄 Улучшенная система бронирования
|
||||
|
||||
### Что изменилось:
|
||||
|
||||
#### 1. Умный поиск туров
|
||||
- Поиск показывает **только доступные туры** на выбранную дату
|
||||
- Учитывается график работы гидов (дни недели, рабочие часы)
|
||||
- Проверяются выходные дни гидов
|
||||
- Учитывается текущая загруженность (до 3 групп в день на гида)
|
||||
|
||||
#### 2. Улучшенная форма поиска
|
||||
- Добавлено поле "Направление" для поиска по локации
|
||||
- Обязательное указание даты
|
||||
- Выбор количества людей в группе
|
||||
- Мгновенные результаты с информацией о доступности
|
||||
|
||||
#### 3. Проверка при бронировании
|
||||
Система автоматически проверяет:
|
||||
- Работает ли гид в выбранный день недели
|
||||
- Нет ли у гида выходного в эту дату
|
||||
- Есть ли свободные места (максимум 3 группы в день)
|
||||
- Соответствует ли размер группы ограничениям тура
|
||||
|
||||
### API Endpoints:
|
||||
|
||||
#### Календарь гидов:
|
||||
- `GET /api/guides` - список активных гидов
|
||||
- `GET /api/guide-schedules` - расписания работы
|
||||
- `GET /api/holidays` - выходные дни гидов
|
||||
- `GET /api/bookings` - существующие бронирования
|
||||
|
||||
#### Поиск и бронирование:
|
||||
- `GET /api/search-available` - поиск доступных туров с учетом расписания
|
||||
- `POST /api/booking` - создание бронирования с проверкой доступности
|
||||
|
||||
### Параметры поиска:
|
||||
```
|
||||
GET /api/search-available?destination=Seoul&date=2025-12-01&people=2
|
||||
```
|
||||
|
||||
### Пример ответа:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": [
|
||||
{
|
||||
"id": 1,
|
||||
"title": "Тур по Сеулу",
|
||||
"guide_id": 3,
|
||||
"guide_name": "Ким Минджун",
|
||||
"guide_available": true,
|
||||
"available_slots": 2,
|
||||
"price": 50000,
|
||||
"start_time": "09:00",
|
||||
"end_time": "18:00"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Преимущества новой системы:
|
||||
|
||||
### Для администраторов:
|
||||
- Визуальный контроль загруженности гидов
|
||||
- Эффективное планирование расписания
|
||||
- Быстрое выявление свободных дней
|
||||
- Простое управление выходными
|
||||
|
||||
### Для клиентов:
|
||||
- Показываются только доступные туры
|
||||
- Мгновенное бронирование без ожидания
|
||||
- Прозрачная информация о доступности
|
||||
- Улучшенный UX поиска
|
||||
|
||||
### Для гидов:
|
||||
- Четкое отображение рабочих дней
|
||||
- Контроль максимальной загрузки
|
||||
- Возможность планировать выходные
|
||||
|
||||
## 🔧 Техническая реализация:
|
||||
|
||||
- **Frontend**: Интерактивный календарь на vanilla JavaScript
|
||||
- **Backend**: API с проверкой доступности в реальном времени
|
||||
- **База данных**: Связь расписаний, выходных и бронирований
|
||||
- **Интеграция**: Встроен в AdminJS как пользовательская страница
|
||||
|
||||
Система полностью готова к использованию и автоматически учитывает все ограничения при поиске и бронировании туров.
|
||||
Reference in New Issue
Block a user