# Madagascar Tours - Полное решение CMS/CRM

Комплексное решение туристического агентства с публичным веб-сайтом, REST API и админ-панелью.

## 📁 Структура проекта

```
madagascar-tours/
├── frontend/          # Публичный веб-сайт
├── backend/           # REST API + CMS + CRM на PHP
├── ARCHITECTURE.md    # Полная архитектура системы
└── README.md          # Этот файл
```

## 🌟 Особенности

### Frontend (Публичный сайт)
- Адаптивный дизайн (mobile-first)
- Многоязычность (English, French, Russian)
- Модальное окно бронирования с валидацией дат
- Интеграция с REST API
- Bootstrap 5.3.0 UI
- Smooth scrolling и back-to-top кнопка

### Backend (API + CMS + CRM)
- RESTful Web API с JSON ответами
- CMS для управления: турами, новостями, страницами, меню
- CRM для управления: бронированиями, контактами
- MySQL база данных с полной схемой
- JWT аутентификация
- CORS поддержка
- Файловый менеджер
- SEO метаданные

## 🏗️ Архитектура

**Frontend** → обращается через HTTP → **REST API** → **MySQL**

Фронтенд не имеет прямого доступа к БД, только через API!

## 🚀 Быстрый старт

### Frontend
```bash
cd frontend
npm install
npm start
# Доступен на http://localhost:5500
```

### Backend
```bash
cd backend
composer install
# Импортировать SQL схему в MySQL
mysql -u root -p < src/database/migrations/001_init_schema.sql
# Запустить API
composer serve
# API доступен на http://localhost:8001/api/v1
```

## 📚 Документация

- **Архитектура**: [ARCHITECTURE.md](ARCHITECTURE.md)
- **Frontend**: [frontend/README.md](frontend/README.md)
- **Backend**: [backend/README.md](backend/README.md)
- **API Docs**: [backend/openapi.yaml](backend/openapi.yaml) (Swagger)

## 📡 API Примеры

### Получить все туры
```bash
curl http://localhost:8001/api/v1/tours
```

### Получить тур по slug
```bash
curl http://localhost:8001/api/v1/tours/diego-suarez-getaway
```

### Создать бронирование
```bash
curl -X POST http://localhost:8001/api/v1/bookings \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "John",
    "last_name": "Doe",
    "email": "john@example.com",
    "tour_id": 1,
    "adults": 2,
    "children": 1
  }'
```

## 🗄️ База данных

Полная MySQL схема с 13 таблицами:
- users, tours, tour_schedules
- news, articles, pages
- categories, menu, sliders
- settings, files
- bookings, audit_logs

Миграция находится в: `backend/src/database/migrations/001_init_schema.sql`

## 🔐 Безопасность

- CORS для разрешённых источников
- JWT для защиты админ-эндпоинтов
- PDO prepared statements (SQL injection prevention)
- Input validation и sanitization

## 📞 Контакты

- **Email**: info@ineditustour.com
- **Phone**: +261 32 71 020 12
- **WhatsApp**: +261 32 71 020 12
- **Office**: Antananarivo, Madagascar

## 📄 Лицензия

MIT License
