# KILN website

Локальная демонстрационная версия нового сайта ресторана KILN на Next.js App Router.

## Запуск

```bash
npm install
npm run dev:3001
```

Откройте `http://localhost:3001`. Скрипт `dev:3001` запускает фиксированный порт и не должен незаметно переключать демонстрацию на другой адрес.

## Где менять данные

- Общие данные ресторана, ссылки, рейтинг, часы, feature flags: `src/config/site.ts`.
- Меню из PDF 2026 года: `src/data/menu.ts`.
- Типы: `src/lib/types.ts`.
- Фотографии для сайта: `public/brand`, `public/dishes`, `public/gallery`, `public/legend`, `public/og`.
- Исходные переданные материалы: `files/`.

## Feature flags

В `src/config/site.ts` можно включать и выключать:

- `deliveryEnabled`;
- `pickupEnabled`;
- `bookingEnabled`;
- `eventsEnabled`;
- `loyaltyEnabled`;
- `onlinePaymentEnabled`.

Отключенные функции не выводятся в основную навигацию, если у них есть флаг.

## Mock-интеграции

На этом этапе не подключены production API Альфа-Банка, Яндекс Доставки, SMS, CRM и система лояльности.

- Бронирование отправляется в `/api/booking` и возвращает статус `new`.
- Заказ отправляется в `/api/order`, проходит серверную проверку корзины и ведет на demo-страницу оплаты.
- Расчет адреса доставки работает через `/api/delivery/quote` в mock-режиме.
- Серверные адаптеры будущих интеграций лежат в `src/lib/integrations.ts`.

## Проверки

```bash
npm run lint
npm run typecheck
npm run build
npm run test:visual
```

## Следующий слой после визуальной демонстрации

- PostgreSQL + ORM;
- админка `/admin/*` с ролями;
- реальные адаптеры Альфа-Банка, Яндекс Доставки, уведомлений и онлайн-кассы;
- загрузка изображений в S3-совместимое хранилище;
- e2e и серверные тесты критичных сценариев.
