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

111 lines
5.4 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. Через дашборд: главная страница админки → карточка "Календарь гидов"
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 как пользовательская страница
Система полностью готова к использованию и автоматически учитывает все ограничения при поиске и бронировании туров.