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