# Настройка «Горизонт» — пошагово для новичка

Сайт работает вместе с **бесплатными** сервисами Google и Telegram.  
Вам **не нужен** свой сервер и знание программирования — только аккаунт Google и 30–40 минут.

## Что получится после настройки

| Функция | Как работает |
|--------|----------------|
| **Заявки с сайта** | Попадают в Google Таблицу (лист «Заявки») |
| **Уведомления** | Приходят вам в Telegram |
| **Туры на сайте** | Берутся из Google Таблицы (лист «Туры») |
| **Админ-панель** | `admin.html` — добавление и правка туров |

---

## Схема (простыми словами)

```
Сайт (index.html)
    ↓ заявка / загрузка туров
Google Apps Script (ваш мини-сервер)
    ↓                    ↓
Google Таблица      Telegram-бот
(Заявки + Туры)
```

---

## Часть 1. Google Таблица и скрипт

### Шаг 1. Создайте таблицу

1. Откройте [Google Таблицы](https://sheets.google.com).
2. **Создать** → пустая таблица.
3. Назовите файл, например: `Горизонт — заявки и туры`.

### Шаг 2. Откройте редактор скрипта

1. В таблице: **Расширения** → **Apps Script**.
2. Удалите код в файле `Code.gs`.
3. Откройте на компьютере папку проекта:  
   `Projects/horizon-travel/google-apps-script/Code.gs`
4. Скопируйте **весь** код и вставьте в Apps Script.
5. Нажмите **Сохранить** (иконка дискеты).

### Шаг 3. Секреты (пароль админки + Telegram)

1. В Apps Script откройте функцию **`setupHorizonSecrets`** (выпадающий список сверху).
2. В коде функции замените:
   - `ADMIN_PASSWORD` — придумайте пароль для входа в админку (например `MoyParol2026!`).
   - `TELEGRAM_BOT_TOKEN` — токен бота (часть 2 ниже).
   - `TELEGRAM_CHAT_ID` — ваш chat id (часть 2).
3. Нажмите **Выполнить** ▶.
4. Разрешите доступ к аккаунту Google (**Продолжить** → **Разрешить**).
5. Внизу должно быть: «Секреты сохранены».

### Шаг 4. Создайте листы с турами

1. Выберите функцию **`setupHorizonDatabase`**.
2. Нажмите **Выполнить** ▶.
3. Вернитесь в таблицу — появятся листы **Туры** и **Заявки** с примерами туров.

### Шаг 5. Опубликуйте веб-приложение

1. В Apps Script: **Развернуть** → **Новое развертывание**.
2. Тип: **Веб-приложение**.
3. Параметры:
   - **Запуск от имени:** Я  
   - **У кого есть доступ:** **Все** (важно!)
4. **Развернуть** → скопируйте **URL веб-приложения** (длинная ссылка на `script.google.com/.../exec`).

> После каждого изменения кода в Apps Script создавайте **Новое развертывание** (или «Управление» → редактировать → новая версия), иначе сайт будет использовать старую версию.

---

## Часть 2. Telegram-бот

### Шаг 1. Создайте бота

1. В Telegram найдите **@BotFather**.
2. Отправьте: `/newbot`
3. Придумайте имя и username бота.
4. BotFather пришлёт **токен** вида `7123456789:AAH...` — скопируйте в `TELEGRAM_BOT_TOKEN`.

### Шаг 2. Узнайте Chat ID

1. Напишите своему боту любое сообщение (например «Привет»).
2. Откройте в браузере (подставьте свой токен):  
   `https://api.telegram.org/botВАШ_ТОКЕН/getUpdates`
3. Найдите `"chat":{"id":123456789` — это **Chat ID** (число).
4. Вставьте в `TELEGRAM_CHAT_ID` и снова выполните `setupHorizonSecrets`.

Альтернатива: бот **@userinfobot** — напишите ему, он покажет ваш id.

---

## Часть 3. Подключите сайт

### Шаг 1. Укажите URL API

1. Откройте файл `config.js` в папке проекта.
2. Вставьте скопированный URL:

```javascript
const HORIZON_CONFIG = {
  API_URL: "https://script.google.com/macros/s/ВАШ_ID/exec",
};
```

3. Сохраните файл.

### Шаг 2. Как открывать сайт

Из-за безопасности браузера **лучше не** открывать сайт только двойным щелчком, если заявки не уходят.

**Вариант А — простой сервер (рекомендуется):**

```bash
cd ~/Projects/horizon-travel
python3 -m http.server 8080
```

Откройте: http://localhost:8080

**Вариант Б — хостинг** (GitHub Pages, Netlify) — для постоянной работы в интернете.

---

## Часть 4. Админ-панель

1. Откройте: http://localhost:8080/admin.html (или путь к `admin.html`).
2. Введите **пароль** из `ADMIN_PASSWORD`.
3. **+ Новый тур** — заполните поля → **Сохранить**.
4. Обновите главную страницу — тур появится в блоке «Популярные туры».

### Поля тура (кратко)

| Поле | Пример |
|------|--------|
| Порядок | 1, 2, 3… (меньше — левее в ленте) |
| Цена | `89000` (без пробелов) |
| Фото | `images/tour-turkey.jpg` или ссылка `https://...` |
| Направление | `Турция` — попадёт в список в форме заявки |
| Показывать на сайте | снятая галочка = тур скрыт |

Фото в папке `images/`: положите файл в `horizon-travel/images/` и укажите `images/имя-файла.jpg`.

---

## Часть 5. Проверка

### Заявки

1. Откройте сайт → форма внизу.
2. Заполните имя, телефон, направление → **Отправить**.
3. Проверьте:
   - лист **Заявки** в Google Таблице — новая строка;
   - Telegram — сообщение от бота.

### Туры

1. В админке измените название тура → сохраните.
2. Обновите главную страницу (Cmd+R) — название должно обновиться.

### Если API не отвечает

В браузере откройте (подставьте свой URL):

`https://script.google.com/.../exec?action=ping`

Должно быть: `{"ok":true,"message":"Horizon API"}`

---

## Где что хранится

| Файл / место | Назначение |
|--------------|------------|
| `index.html` | Главный сайт |
| `admin.html` | Управление турами |
| `config.js` | URL вашего Google Apps Script |
| `api.js` | Загрузка туров и отправка заявок |
| Google Таблица → **Туры** | Все туры |
| Google Таблица → **Заявки** | Все заявки клиентов |

---

## Безопасность (важно)

- Не выкладывайте `config.js` с рабочим URL в открытый доступ без необходимости.
- Смените пароль админки с `horizon2026` на свой сложный.
- Токен Telegram никому не показывайте.

---

## Частые проблемы

**«Укажите API_URL в config.js»**  
→ Не вставлен URL веб-приложения или файл `config.js` не подключён.

**Заявка не в Telegram**  
→ Проверьте токен и chat id, снова выполните `setupHorizonSecrets`.

**Туры не обновляются**  
→ Создайте новое развертывание Apps Script после правок кода.

**Админка: «Неверный пароль»**  
→ Пароль тот, что в `setupHorizonSecrets`, не от старой версии.

---

Готово. Сайт стал рабочим инструментом для приёма заявок и управления турами.
