- Объединены ресурсы в 5 логических групп: Контент сайта, Бронирования, Отзывы и рейтинги, Персонал и гиды, Администрирование - Удалены дублирующие настройки navigation для чистой группировки - Добавлены CSS стили для визуального отображения иерархии с отступами - Добавлены эмодзи-иконки для каждого типа ресурсов через CSS - Улучшена навигация с правильной вложенностью элементов
5.4 KiB
5.4 KiB
Календарь гидов и улучшенная система бронирования
📅 Новая функция: Календарь гидов
В разделе "Управление гидами" добавлен интерактивный календарь, который показывает:
Возможности календаря:
- Рабочие дни гидов - отображение расписания по дням недели
- Выходные дни - отпуска и нерабочие дни гидов
- Загруженность - количество бронирований на каждый день
- Фильтрация - возможность выбора конкретных гидов для отображения
- Навигация по месяцам - просмотр расписания на разные периоды
Доступ к календарю:
- Через админ панель: Управление гидами → Расписание гидов → кнопка "📅 Открыть календарь"
- Через дашборд: главная страница админки → карточка "Календарь гидов"
- Прямая ссылка:
/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
Пример ответа:
{
"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 как пользовательская страница
Система полностью готова к использованию и автоматически учитывает все ограничения при поиске и бронировании туров.