# Настройка Google Maps Distance Matrix API

Этот документ описывает, как настроить интеграцию с Google Maps Distance Matrix API для расчета времени доставки.

## Шаг 1: Получение API ключа Google Maps

1. Перейдите на [Google Cloud Console](https://console.cloud.google.com/)
2. Создайте новый проект или выберите существующий
3. Перейдите в раздел **APIs & Services** > **Library**
4. Найдите **Distance Matrix API** и включите его
5. Перейдите в **APIs & Services** > **Credentials**
6. Нажмите **Create Credentials** > **API Key**
7. Скопируйте созданный API ключ

## Шаг 2: Настройка ограничений API ключа (рекомендуется)

Для безопасности рекомендуется настроить ограничения для API ключа:

1. В Google Cloud Console перейдите в **APIs & Services** > **Credentials**
2. Нажмите на созданный API ключ
3. В разделе **API restrictions** выберите **Restrict key**
4. Выберите **Distance Matrix API**
5. В разделе **Application restrictions** можно настроить ограничения по IP-адресам или HTTP referrers (для веб-приложений)

## Шаг 3: Добавление ключа в .env файл

Добавьте следующую строку в файл `.env`:

```env
GOOGLE_MAPS_API_KEY=ваш_api_ключ_здесь
```

## Шаг 4: Проверка работы

После настройки API ключа:

1. Откройте страницу заказов в админ-панели
2. Откройте детали любого заказа с адресом доставки
3. В разделе "Информация о клиенте" должно отображаться "Примерное время доставки"
4. Время должно рассчитываться автоматически при открытии модального окна

## Использование API

API вызывается автоматически при открытии деталей заказа. Endpoint:

```
POST /api/admin/orders/calculate-delivery-time
```

Параметры запроса:
- `delivery_address` (required) - адрес доставки
- `postal_code` (optional) - почтовый индекс

Ответ:
```json
{
    "success": true,
    "data": {
        "duration_minutes": 15,
        "duration_text": "15 мин",
        "distance_text": "5.2 км",
        "distance_meters": 5200
    }
}
```

## Адрес ресторана

Адрес ресторана по умолчанию: `Luitpoldstraße 44, 84034 Landshut`

Этот адрес можно изменить в файле:
- `kartulirest/resources/js/pages/admin/Orders.vue` (константа `RESTAURANT_ADDRESS`)
- `kartulirest/app/Http/Controllers/Api/Admin/OrderController.php` (метод `calculateDeliveryTime`)

## Обработка ошибок

Если API ключ не настроен или произошла ошибка:
- В логах Laravel будет записано предупреждение
- На фронтенде будет отображаться "Рассчитывается..." или сообщение об ошибке

## Стоимость использования

Google Maps Distance Matrix API имеет бесплатный лимит:
- **$200 кредитов в месяц** (примерно 40,000 запросов для стандартных запросов)
- После превышения лимита взимается плата

Подробнее о ценах: https://developers.google.com/maps/documentation/distance-matrix/pricing

## Дополнительная информация

- [Документация Google Maps Distance Matrix API](https://developers.google.com/maps/documentation/distance-matrix)
- [Руководство по безопасности API ключей](https://developers.google.com/maps/api-security-best-practices)
