# Установка и запуск (локально)

[← К оглавлению](../README.md)

## Требования

Всё уже идёт в комплекте **Laragon** (`D:\SOFT\laragon`):
PHP 8.3.30, MySQL 8.4, Composer, Node 22, Apache. Бинарники на `PATH` не прописаны глобально — при работе из консоли добавляйте их в `PATH` сессии (см. ниже) или используйте Laragon-терминал.

```powershell
$env:Path = "D:\SOFT\laragon\bin\php\php-8.3.30-Win32-vs16-x64;" +
            "D:\SOFT\laragon\bin\composer;" +
            "D:\SOFT\laragon\bin\mysql\mysql-8.4.3-winx64\bin;" +
            "D:\SOFT\laragon\bin\nodejs\node-v22;$env:Path"
```

## Домен placeo.ru

- vhost Apache: `D:\SOFT\laragon\etc\apache2\sites-enabled\placeo.ru.conf` → `DocumentRoot D:/TEMP/Placeo/public`.
- В `hosts` (`C:\Windows\System32\drivers\etc\hosts`): `127.0.0.1  placeo.ru www.placeo.ru`.
- Сайт: **http://placeo.ru**. Apache запускается/перезапускается через Laragon или `httpd.exe`.

## Первая установка

```bash
composer install
npm install
cp .env.example .env   # уже настроен: APP_URL=http://placeo.ru, DB=placeo (root, без пароля)
php artisan key:generate    # если нужно
php artisan storage:link
```

## Пересборка БД (чистая)

Порядок важен — характеристики и объявления зависят от импортированных категорий:

```bash
php artisan migrate:fresh --seed                      # схема + города + админ
php artisan placeo:import-categories --fresh          # 1133 категории из samples
php artisan db:seed --class=CategoryAttributeSeeder   # демо-характеристики
php artisan db:seed --class=AdSeeder                  # ~67 демо-объявлений с фото
npm run build                                         # сборка фронтенда
```

## Учётные записи (после сидов)

| Роль | Логин | Пароль |
|---|---|---|
| Админ | `admin@placeo.test` | `admin12345` |
| Демо-продавец | `demo-seller@placeo.test` | (через фабрику) |

## Фоновые процессы (для полного функционала)

```bash
php artisan queue:work       # модерация (DeepSeek), Telegram-алерты
php artisan schedule:work    # батч уведомлений о новых объявлениях (каждые 2 часа)
```

## Ключи и интеграции

Заполняются в **`/admin → Настройки`** (приоритетнее `.env`):
- **DeepSeek**: тумблер автомодерации + API-ключ.
- **Telegram**: bot token + admin chat ID (как узнать chat ID — см. [integrations.md](integrations.md)).

В `.env` уже есть Яндекс OAuth (`YANDEX_CLIENT_ID/SECRET`). Для входа через Яндекс **в виджете** добавьте в Яндекс-приложение второй Redirect URI:
`http://placeo.ru/widget/oauth/yandex/callback`.

## Сборка фронтенда

```bash
npm run build     # прод-сборка (public/build)
npm run dev       # вотчер Vite при разработке
```

Виджет (`public/widget/*.js|css`) — статические файлы, **не** проходят через Vite, пересборка не нужна.

## Регенерация цветовой схемы MD3

```bash
node --import ./scripts/register-hook.mjs scripts/gen-md3-theme.mjs > resources/css/_md3-colors.css
```
(seed `#87C540` зашит в `scripts/gen-md3-theme.mjs`).
