Files
tourrism_site/CALENDAR_GUIDE.md
Andrey K. Choi 13c752b93a feat: Оптимизация навигации AdminJS в логические группы
- Объединены ресурсы в 5 логических групп: Контент сайта, Бронирования, Отзывы и рейтинги, Персонал и гиды, Администрирование
- Удалены дублирующие настройки navigation для чистой группировки
- Добавлены CSS стили для визуального отображения иерархии с отступами
- Добавлены эмодзи-иконки для каждого типа ресурсов через CSS
- Улучшена навигация с правильной вложенностью элементов
2025-11-30 21:57:58 +09:00

5.4 KiB
Raw Permalink Blame History

Календарь гидов и улучшенная система бронирования

📅 Новая функция: Календарь гидов

В разделе "Управление гидами" добавлен интерактивный календарь, который показывает:

Возможности календаря:

  • Рабочие дни гидов - отображение расписания по дням недели
  • Выходные дни - отпуска и нерабочие дни гидов
  • Загруженность - количество бронирований на каждый день
  • Фильтрация - возможность выбора конкретных гидов для отображения
  • Навигация по месяцам - просмотр расписания на разные периоды

Доступ к календарю:

  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

Пример ответа:

{
  "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 как пользовательская страница

Система полностью готова к использованию и автоматически учитывает все ограничения при поиске и бронировании туров.