# 🚗 DetailingRiga — Полная документация проекта

> **Платформа-директория авто детейлинга в Латвии**
> Версия: 1.0 | Дата: Февраль 2026
> Стек: PHP 8.1 / MySQL 8 / Tailwind CSS / Vanilla JS
> Языки: LV (основной) / RU / EN
> Домен: detailing.apusseo.com

---

## 📑 Содержание

1. [Обзор проекта](#1-обзор-проекта)
2. [Данные и аналитика](#2-данные-и-аналитика)
3. [Архитектура системы](#3-архитектура-системы)
4. [Роли и права доступа](#4-роли-и-права-доступа)
5. [Структура базы данных](#5-структура-базы-данных)
6. [Страницы и маршруты](#6-страницы-и-маршруты)
7. [Панели управления](#7-панели-управления)
8. [Дизайн-система](#8-дизайн-система)
9. [SEO стратегия](#9-seo-стратегия)
10. [Файловая структура проекта](#10-файловая-структура-проекта)
11. [Импорт данных](#11-импорт-данных)
12. [План разработки (Roadmap)](#12-план-разработки-roadmap)

---

## 1. Обзор проекта

### 1.1 Что это

Платформа-директория детейлинг-студий Латвии, где:
- **Клиенты** находят детейлинг-студии по услуге, городу, рейтингу, ценовому сегменту; записываются онлайн; оставляют отзывы; используют калькулятор цен
- **Владельцы студий** создают аккаунт, добавляют своё место (фото, галерея, описание, время работы, услуги, прайс), управляют записями и отзывами
- **Суперадмин** видит все данные, редактирует всё, модерирует контент, управляет категориями/городами/SEO

### 1.2 Конфигурация сервера

| Параметр | Значение |
|----------|----------|
| Домен | `detailing.apusseo.com` |
| PHP | 8.1 |
| БД | MySQL 8 |
| БД имя | `apusseo_detailingriga` |
| БД юзер | `apusseo_detailingriga` |
| БД пароль | `t&fToeeajCde%YHG` |
| БД хост | `localhost` |
| CSS | Tailwind CSS (CDN + custom) |
| JS | Vanilla JS |

### 1.3 Принципы дизайна

- **Тёмный и премиальный** — тёмные фоны (#0d0d0d, #1a1a2e), неоновые акценты, глянцевый эффект
- **Профессиональный вид** — НЕ генерённый AI look, индивидуальные стили
- **Фото со стоков** — Unsplash/Pexels для плейсхолдеров (авто, студии, детейлинг процесс)
- **Mobile-first** — адаптивный под все устройства
- **Tailwind CSS** — utility-first с кастомными расширениями
- **Карта** — Google Maps embed с маркерами студий
- **3 языка** — LV как основной, RU и EN переключаемые

---

## 2. Данные и аналитика

### 2.1 Парсинг: исходные данные

Спарсено **25 детейлинг-компаний** из Google Maps и открытых источников. Данные в файле `riga-jurmala-detailing.json`.

### 2.2 Распределение по территориям

| Территория | Компаний |
|-----------|----------|
| **Rīga** | 22 |
| **Jūrmala** | 1 |
| **Mārupe / Piņķi (пригород)** | 2 |

### 2.3 Районы Риги

| Район | Компаний |
|-------|----------|
| Latgales priekšpilsēta | 10 |
| Vidzemes priekšpilsēta | 6 |
| Zemgales priekšpilsēta | 4 |
| Centra rajons | 2 |

### 2.4 Распределение по услугам

| Услуга | Компаний | Ключ в БД |
|--------|----------|-----------|
| Полировка кузова | 18 | `paint_polishing` |
| Химчистка салона | 17 | `interior_chemical_cleaning` |
| Оклейка / плёнки | 13 | `car_wrapping` |
| Полировка фар | 6 | `headlight_polishing` |
| Керамика | 8+ | `ceramic_coating` |
| Тонировка | 4+ | `window_tinting` |
| PPF защитная плёнка | 8+ | `ppf` |
| Детейлинг-мойка | 5+ | `detailing_wash` |

### 2.5 Ценовые сегменты

| Сегмент | Компаний | Описание |
|---------|----------|----------|
| **Low** (бюджетный) | 5 | Химчистка, базовая мойка |
| **Mid** (средний) | 17 | Полный спектр услуг |
| **Premium** (премиум) | 3 | Элитные студии, luxury-авто |

### 2.6 Рейтинги

- Средний рейтинг: **4.8 ★**
- Диапазон: 4.3 — 5.0
- Общее количество отзывов: ~2,600+

### 2.7 Полный список компаний

| # | Название | Город | Район | ★ | Отзывы | Сегмент |
|---|---------|-------|-------|---|--------|---------|
| 1 | Auto pulēšana - Baltic Detailing | Rīga | Vidzemes | 4.9 | 260 | mid |
| 2 | Troks Detailing Auto pulēšana | Rīga | Zemgales | 5.0 | 109 | premium |
| 3 | DeCar Detailing * Auto Ķīmiskā Tīrīšana | Rīga | Latgales | 4.9 | 341 | mid |
| 4 | polirovka.lv | Rīga | Latgales | 4.9 | 56 | mid |
| 5 | "Greenline Auto" dry-cleaning | Rīga | Centra | 4.8 | 275 | mid |
| 6 | CeramicPro Latvia / Carwash Granta | Jūrmala | — | 4.6 | 142 | mid |
| 7 | AZ DETAIL | Piņķi | — | 5.0 | 25 | mid |
| 8 | Riga Car Detailing | Rīga | Latgales | 5.0 | 11 | mid |
| 9 | Dīteilinga studija AUTOESTETIKA | Rīga | Vidzemes | 4.8 | 78 | premium |
| 10 | BOLD Car Works Riga | Rīga | Zemgales | 4.9 | 27 | premium |
| 11 | AUTO ĶĪMISKĀ TĪRĪTAVA | Rīga | Vidzemes | 4.9 | 80 | low |
| 12 | Green Clean - Auto Salonu Ķīmiskā Tīrīšana | Rīga | Latgales | 4.5 | 73 | low |
| 13 | Vinylworks Auto aplīmēšana / Aizsargplēves | Rīga | Latgales | 5.0 | 5 | mid |
| 14 | Riga Customs style + performance | Rīga | Latgales | 4.6 | 52 | mid |
| 15 | Paint Protect - Auto aplīmēšana Rīgā | Rīga | Zemgales | 4.9 | 22 | mid |
| 16 | Restyling Workshop Rīga | Mārupe | — | 4.8 | 45 | mid |
| 17 | NFD detailing studio | Rīga | Latgales | 4.9 | 17 | mid |
| 18 | AUTOTONĒŠANA | Rīga | Vidzemes | 4.5 | 119 | low |
| 19 | Chromiq Riga Detail | Rīga | Vidzemes | 5.0 | 24 | mid |
| 20 | Level888 | Rīga | Latgales | 5.0 | 17 | mid |
| 21 | Caroscar.lv | Rīga | Vidzemes | 4.9 | 131 | mid |
| 22 | NEMO WASH | Rīga | Latgales | 4.3 | 191 | low |
| 23 | EA WRAP WORKS | Rīga | Zemgales | 4.9 | 24 | mid |
| 24 | Gold Group | Rīga | Latgales | 5.0 | 10 | mid |
| 25 | Auto stiklu tonēšanas Rīgā TonAuto | Rīga | Centra | 4.5 | 313 | low |

---

## 3. Архитектура системы

### 3.1 Общая архитектура

```
┌──────────────────────────────────────────────────────┐
│                      КЛИЕНТЫ                          │
│  Браузер (Desktop / Mobile)                           │
└──────────────┬───────────────────────────────────────┘
               │
               ▼
┌──────────────────────────┐  ┌──────────────────────┐
│   PHP Frontend (SSR)     │  │   REST API (v1)      │
│   SEO, мета-теги         │  │   /api/v1/...        │
│   Tailwind CSS           │  │   JSON responses     │
└──────────┬───────────────┘  └──────────┬───────────┘
           │                             │
           ▼                             ▼
┌──────────────────────────────────────────────────────┐
│                  PHP Backend (Core)                    │
│  Router → Controllers → Models → Database             │
│  Middleware: Auth, CSRF, Language, RateLimit           │
└──────────────────────┬───────────────────────────────┘
                       │
           ┌───────────┼───────────┐
           ▼           ▼           ▼
       MySQL 8     Storage     Cache
```

### 3.2 Стек технологий

| Компонент | Технология |
|-----------|-----------|
| Backend | Core PHP 8.1 (без фреймворка) |
| Database | MySQL 8 |
| Frontend CSS | Tailwind CSS (CDN) + custom CSS |
| Frontend JS | Vanilla JS |
| Maps | Google Maps Embed API / Leaflet.js |
| Images | Unsplash/Pexels stock → потом реальные |
| Auth | Session-based (PHP sessions) |
| Email | PHP mail() / SMTP |

---

## 4. Роли и права доступа

### 4.1 Три роли

| Роль | Описание | Доступ |
|------|----------|--------|
| **guest** | Незарегистрированный | Просмотр каталога, поиск, фильтрация, карта, калькулятор цен |
| **business** | Владелец студии | Личный кабинет, управление профилем студии, фото/галерея, услуги, прайс, график работы, управление записями, ответ на отзывы |
| **superadmin** | Администратор | ВСЁ: все юзеры, все студии, все данные, редактирование, модерация, категории, города, SEO, аналитика |

### 4.2 Superadmin credentials

| Параметр | Значение |
|----------|----------|
| Email | admin@detailingriga.com |
| Пароль | DetailRiga@2026! |

### 4.3 Матрица прав

| Действие | Guest | Business | Superadmin |
|----------|-------|----------|------------|
| Просмотр каталога | ✅ | ✅ | ✅ |
| Поиск / фильтры / карта | ✅ | ✅ | ✅ |
| Калькулятор цен | ✅ | ✅ | ✅ |
| Онлайн запись | ✅ | ✅ | ✅ |
| Оставить отзыв | ❌ (нужен email) | ✅ | ✅ |
| Создать аккаунт студии | ❌ | ✅ | ✅ |
| Редактировать свою студию | ❌ | ✅ (свою) | ✅ (все) |
| Загрузить фото / галерея | ❌ | ✅ | ✅ |
| Управлять записями | ❌ | ✅ (свои) | ✅ (все) |
| Отвечать на отзывы | ❌ | ✅ (свои) | ✅ (все) |
| Управлять юзерами | ❌ | ❌ | ✅ |
| Редактировать категории | ❌ | ❌ | ✅ |
| Управлять городами/районами | ❌ | ❌ | ✅ |
| Модерация контента | ❌ | ❌ | ✅ |
| SEO настройки | ❌ | ❌ | ✅ |
| Аналитика | ❌ | ❌ | ✅ |

---

## 5. Структура базы данных

### 5.1 Подключение

```php
// .env
DB_HOST=localhost
DB_NAME=apusseo_detailingriga
DB_USER=apusseo_detailingriga
DB_PASS="t&fToeeajCde%YHG"
```

### 5.2 Таблицы (миграции)

#### `001_create_users.sql`
```sql
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    email VARCHAR(255) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    name VARCHAR(255) NOT NULL,
    phone VARCHAR(50),
    role ENUM('business', 'superadmin') DEFAULT 'business',
    avatar VARCHAR(500),
    is_active TINYINT(1) DEFAULT 1,
    email_verified_at DATETIME NULL,
    remember_token VARCHAR(100),
    last_login_at DATETIME,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```

#### `002_create_cities.sql`
```sql
CREATE TABLE cities (
    id INT PRIMARY KEY AUTO_INCREMENT,
    slug VARCHAR(100) UNIQUE NOT NULL,
    name_lv VARCHAR(255) NOT NULL,
    name_ru VARCHAR(255),
    name_en VARCHAR(255),
    lat DECIMAL(10,7),
    lng DECIMAL(10,7),
    is_active TINYINT(1) DEFAULT 1,
    sort_order INT DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Seed: Rīga, Jūrmala, Mārupe, Piņķi, Liepāja, Daugavpils, Ventspils, Jelgava
```

#### `003_create_districts.sql`
```sql
CREATE TABLE districts (
    id INT PRIMARY KEY AUTO_INCREMENT,
    city_id INT NOT NULL,
    slug VARCHAR(100) NOT NULL,
    name_lv VARCHAR(255) NOT NULL,
    name_ru VARCHAR(255),
    name_en VARCHAR(255),
    lat DECIMAL(10,7),
    lng DECIMAL(10,7),
    is_active TINYINT(1) DEFAULT 1,
    sort_order INT DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (city_id) REFERENCES cities(id),
    UNIQUE KEY (city_id, slug)
);
-- Seed: Latgales, Vidzemes, Zemgales, Centra rajons, Pārdaugava, Āgenskalns...
```

#### `004_create_service_categories.sql`
```sql
CREATE TABLE service_categories (
    id INT PRIMARY KEY AUTO_INCREMENT,
    slug VARCHAR(100) UNIQUE NOT NULL,
    name_lv VARCHAR(255) NOT NULL,
    name_ru VARCHAR(255),
    name_en VARCHAR(255),
    icon VARCHAR(50),          -- emoji or icon class
    description_lv TEXT,
    description_ru TEXT,
    description_en TEXT,
    is_active TINYINT(1) DEFAULT 1,
    sort_order INT DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Seed: Полировка кузова, Полировка фар, Химчистка салона, Оклейка винилом, PPF плёнки, 
--        Керамическое покрытие, Тонировка, Детейлинг-мойка, Безкрасочный ремонт вмятин
```

#### `005_create_studios.sql`
```sql
CREATE TABLE studios (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,                       -- NULL для импортированных (незарегистрированных)
    slug VARCHAR(255) UNIQUE NOT NULL,
    name VARCHAR(255) NOT NULL,
    legal_name VARCHAR(255),           -- SIA ...
    description_lv TEXT,
    description_ru TEXT,
    description_en TEXT,
    city_id INT NOT NULL,
    district_id INT,
    address VARCHAR(500) NOT NULL,
    lat DECIMAL(10,7),
    lng DECIMAL(10,7),
    phone VARCHAR(50),
    email VARCHAR(255),
    website VARCHAR(500),
    
    -- Соцсети
    facebook VARCHAR(500),
    instagram VARCHAR(500),
    tiktok VARCHAR(500),
    youtube VARCHAR(500),
    google_profile VARCHAR(500),
    
    -- Бизнес-данные
    price_segment ENUM('low', 'mid', 'premium') DEFAULT 'mid',
    rating DECIMAL(2,1) DEFAULT 0,
    reviews_count INT DEFAULT 0,
    
    -- Рабочее время (JSON)
    working_hours JSON,
    -- {"mon":"09:00-18:00","tue":"09:00-18:00",...,"sun":"closed"}
    
    -- Медиа
    logo VARCHAR(500),
    cover_image VARCHAR(500),
    
    -- Статус
    is_claimed TINYINT(1) DEFAULT 0,    -- Владелец подтвердил аккаунт
    is_verified TINYINT(1) DEFAULT 0,   -- Админ верифицировал
    is_featured TINYINT(1) DEFAULT 0,   -- Выделенная позиция
    is_active TINYINT(1) DEFAULT 1,
    
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL,
    FOREIGN KEY (city_id) REFERENCES cities(id),
    FOREIGN KEY (district_id) REFERENCES districts(id)
);
```

#### `006_create_studio_services.sql`
```sql
CREATE TABLE studio_services (
    id INT PRIMARY KEY AUTO_INCREMENT,
    studio_id INT NOT NULL,
    category_id INT NOT NULL,
    name_custom VARCHAR(255),      -- кастомное название если отличается
    description TEXT,
    price_from DECIMAL(10,2),      -- цена от
    price_to DECIMAL(10,2),        -- цена до
    duration_minutes INT,          -- длительность в минутах
    is_active TINYINT(1) DEFAULT 1,
    sort_order INT DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (studio_id) REFERENCES studios(id) ON DELETE CASCADE,
    FOREIGN KEY (category_id) REFERENCES service_categories(id)
);
```

#### `007_create_studio_gallery.sql`
```sql
CREATE TABLE studio_gallery (
    id INT PRIMARY KEY AUTO_INCREMENT,
    studio_id INT NOT NULL,
    image_path VARCHAR(500) NOT NULL,
    caption VARCHAR(255),
    is_cover TINYINT(1) DEFAULT 0,
    sort_order INT DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (studio_id) REFERENCES studios(id) ON DELETE CASCADE
);
```

#### `008_create_reviews.sql`
```sql
CREATE TABLE reviews (
    id INT PRIMARY KEY AUTO_INCREMENT,
    studio_id INT NOT NULL,
    author_name VARCHAR(255) NOT NULL,
    author_email VARCHAR(255),
    rating TINYINT NOT NULL,        -- 1-5
    text TEXT,
    reply TEXT,                     -- ответ владельца
    reply_at DATETIME,
    is_approved TINYINT(1) DEFAULT 0,
    source ENUM('platform', 'google_import') DEFAULT 'platform',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (studio_id) REFERENCES studios(id) ON DELETE CASCADE
);
```

#### `009_create_bookings.sql`
```sql
CREATE TABLE bookings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    studio_id INT NOT NULL,
    service_id INT,                  -- ссылка на studio_services
    client_name VARCHAR(255) NOT NULL,
    client_phone VARCHAR(50) NOT NULL,
    client_email VARCHAR(255),
    car_brand VARCHAR(100),
    car_model VARCHAR(100),
    car_year INT,
    preferred_date DATE,
    preferred_time TIME,
    message TEXT,
    status ENUM('new', 'confirmed', 'completed', 'cancelled') DEFAULT 'new',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (studio_id) REFERENCES studios(id) ON DELETE CASCADE,
    FOREIGN KEY (service_id) REFERENCES studio_services(id) ON DELETE SET NULL
);
```

#### `010_create_pages.sql`
```sql
CREATE TABLE pages (
    id INT PRIMARY KEY AUTO_INCREMENT,
    slug VARCHAR(255) UNIQUE NOT NULL,
    title_lv VARCHAR(255),
    title_ru VARCHAR(255),
    title_en VARCHAR(255),
    content_lv TEXT,
    content_ru TEXT,
    content_en TEXT,
    meta_title_lv VARCHAR(255),
    meta_description_lv VARCHAR(500),
    is_active TINYINT(1) DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```

#### `011_create_settings.sql`
```sql
CREATE TABLE settings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    `key` VARCHAR(100) UNIQUE NOT NULL,
    value TEXT,
    type ENUM('string', 'int', 'bool', 'json') DEFAULT 'string',
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```

---

## 6. Страницы и маршруты

### 6.1 Публичные страницы

| URL | Страница | Описание |
|-----|----------|----------|
| `/lv` | Главная | Hero, поиск, карта, топ студии, категории, города, калькулятор |
| `/lv/studijas` | Каталог | Все студии с фильтрами, сортировкой, картой |
| `/lv/studija/{slug}` | Профиль студии | Полная информация, галерея, услуги, отзывы, запись |
| `/lv/pakalpojumi` | Все услуги | Обзор категорий |
| `/lv/pakalpojumi/{slug}` | Категория услуги | Напр. `/lv/pakalpojumi/auto-polesana` |
| `/lv/pilsetas` | Все города | Список городов/районов |
| `/lv/{city}` | Страница города | Напр. `/lv/riga` |
| `/lv/{city}/{district}` | Страница района | Напр. `/lv/riga/latgales` |
| `/lv/{city}/{service}` | Город + услуга | Напр. `/lv/riga/auto-polesana` |
| `/lv/kalkulators` | Калькулятор цен | Интерактивный подсчёт стоимости |
| `/lv/blog` | Блог | Статьи про детейлинг |
| `/lv/blog/{slug}` | Статья блога | Отдельная статья |
| `/lv/par-mums` | О нас | |
| `/lv/kontakti` | Контакты | |
| `/lv/noteikumi` | Правила | |
| `/lv/privatuma-politika` | Приватность | |

### 6.2 Auth маршруты

| URL | Метод | Описание |
|-----|-------|----------|
| `/lv/ieiet` | GET/POST | Вход |
| `/lv/registreties` | GET/POST | Регистрация бизнеса |
| `/lv/aizmirsu-paroli` | GET/POST | Восстановление пароля |
| `/lv/iziet` | GET | Выход |

### 6.3 Business Dashboard

| URL | Описание |
|-----|----------|
| `/dashboard` | Главная кабинета |
| `/dashboard/studio` | Профиль студии (редактирование) |
| `/dashboard/studio/services` | Управление услугами и ценами |
| `/dashboard/studio/gallery` | Галерея / фото |
| `/dashboard/studio/hours` | Рабочее время |
| `/dashboard/bookings` | Записи клиентов |
| `/dashboard/reviews` | Отзывы + ответы |
| `/dashboard/settings` | Настройки аккаунта |

### 6.4 Superadmin Panel

| URL | Описание |
|-----|----------|
| `/admin` | Дашборд (статистика) |
| `/admin/studios` | Все студии (таблица, поиск, фильтры) |
| `/admin/studios/{id}/edit` | Редактирование любой студии |
| `/admin/users` | Все юзеры |
| `/admin/bookings` | Все записи |
| `/admin/reviews` | Модерация отзывов |
| `/admin/categories` | Управление категориями услуг |
| `/admin/cities` | Управление городами и районами |
| `/admin/pages` | Статические страницы |
| `/admin/seo` | SEO настройки |
| `/admin/settings` | Глобальные настройки |
| `/admin/import` | Импорт данных из JSON |

### 6.5 API маршруты

| URL | Метод | Описание |
|-----|-------|----------|
| `/api/v1/studios` | GET | Список студий (фильтры, пагинация) |
| `/api/v1/studios/{id}` | GET | Данные студии |
| `/api/v1/studios/search` | GET | Поиск (query, city, service, segment) |
| `/api/v1/studios/map` | GET | Маркеры для карты (lat, lng, name) |
| `/api/v1/bookings` | POST | Создать запись |
| `/api/v1/reviews` | POST | Оставить отзыв |
| `/api/v1/calculator` | POST | Расчёт стоимости |

---

## 7. Панели управления

### 7.1 Business Dashboard

**Раскладка:** sidebar (тёмный) + контент-область

**Sidebar:** Логотип, навигация (Обзор, Студия, Услуги, Галерея, Время работы, Записи, Отзывы, Настройки)

**Страница "Студия":**
- Общая информация: название, описание (LV/RU/EN), юр. название
- Контакты: телефон, email, сайт, соцсети
- Адрес: город, район, адрес, карта (pin на Google Maps)
- Медиа: логотип, обложка
- Ценовой сегмент: low / mid / premium
- Статус: active / claimed / verified

**Страница "Услуги":**
- Таблица: категория, название, описание, цена от/до, длительность
- Добавление/удаление/редактирование
- Drag & drop сортировка

**Страница "Галерея":**
- Drag & drop загрузка фото
- Captions
- Пометка cover-фото
- Удаление

**Страница "Записи":**
- Таблица: дата, клиент, телефон, услуга, авто, статус
- Фильтр по статусу: new, confirmed, completed, cancelled
- Действия: подтвердить, завершить, отменить

**Страница "Отзывы":**
- Список: автор, рейтинг, текст, дата
- Кнопка "Ответить" → textarea для reply
- Флаг на отзывы

### 7.2 Superadmin Panel

**Раскладка:** sidebar + контент, аналогичный business но расширенный

**Дашборд:** 
- Карточки: всего студий, юзеров, записей, отзывов за месяц
- График: записи по дням (Chart.js)
- Последние записи и отзывы

**Все студии (таблица):**
- Колонки: ID, название, город, рейтинг, отзывы, сегмент, claimed, verified, active
- Фильтры: город, сегмент, статус
- Поиск по названию
- Действия: редактировать, verify, feature, delete
- **Полное редактирование** всех полей любой студии

**Все юзеры (таблица):**
- Колонки: ID, email, имя, роль, студия, last login, active
- Действия: редактировать, деактивировать, сменить роль

**Модерация отзывов:**
- Все неодобренные отзывы
- Approve / Reject / Delete

---

## 8. Дизайн-система

### 8.1 Цветовая палитра

```css
:root {
  /* Основные */
  --bg-dark: #0d0d0d;
  --bg-card: #1a1a2e;
  --bg-card-hover: #22223a;
  --surface: #16213e;
  
  /* Акценты */
  --accent: #00d4ff;          /* неоновый голубой */
  --accent-warm: #ff6b35;     /* оранжевый */
  --accent-gold: #ffd700;     /* золото для premium */
  --accent-green: #00e676;    /* зелёный для success */
  
  /* Текст */
  --text-primary: #f0f0f0;
  --text-secondary: #a0a0b0;
  --text-muted: #6b6b80;
  
  /* Utility */
  --border: rgba(255,255,255,0.06);
  --border-hover: rgba(0,212,255,0.3);
  --glass: rgba(26,26,46,0.8);
  
  /* Price segments */
  --segment-low: #4caf50;
  --segment-mid: #2196f3;
  --segment-premium: #ffd700;
  
  /* Radius */
  --radius: 12px;
  --radius-sm: 8px;
  --radius-lg: 20px;
}
```

### 8.2 Шрифты

```
Display / заголовки: "Clash Display" или "Sora" (Google Fonts)
Body / текст: "Inter" или "DM Sans" (Google Fonts)
Mono / цены: "JetBrains Mono"
```

### 8.3 Компоненты

**Карточка студии:**
- Тёмный фон с border-glow на hover
- Cover image (16:9)
- Логотип (аватар-кружок, наложен на cover)
- Название (h3), район/город
- Рейтинг (звёзды + число + кол-во отзывов)
- Теги услуг (pills)
- Ценовой сегмент badge (цвет по сегменту)
- Кнопки: "Подробнее" / "Записаться"

**Карточка услуги:**
- Иконка/emoji
- Название
- Количество студий
- Ценовой диапазон

**Карточка города:**
- Фоновое фото города
- Overlay gradient
- Название
- Количество студий

**Кнопки:**
- Primary: gradient accent (голубой)
- Secondary: outline белый
- Gold: для premium CTA

### 8.4 Особые UI-элементы

**Калькулятор цен:**
- Выбор типа авто (sedan, SUV, premium)
- Выбор услуг (checkbox список)
- Slider ценового диапазона
- Итоговая сумма с анимацией
- Кнопка "Найти студию"

**Карта (Google Maps):**
- Тёмная тема карты (dark mode styling)
- Кастомные маркеры (иконка студии)
- Popup при клике: название, рейтинг, фото, кнопка
- Кластеризация маркеров

**Фильтры (sidebar):**
- Город (select)
- Район (checkbox если город=Rīga)
- Услуга (checkbox)
- Ценовой сегмент (pills: Low / Mid / Premium)
- Рейтинг (минимум: 4.0, 4.5, 4.8)
- Сортировка: рейтинг, отзывы, название

---

## 9. SEO стратегия

### 9.1 Программатические страницы

| Тип | Пример URL | Количество |
|-----|-----------|-----------|
| Город | `/lv/riga` | ~8 |
| Район | `/lv/riga/latgales` | ~15 |
| Услуга | `/lv/pakalpojumi/auto-polesana` | ~9 |
| Город + услуга | `/lv/riga/auto-polesana` | ~70+ |
| Студия | `/lv/studija/{slug}` | 25+ |
| **Итого** | | **120+ страниц** |

### 9.2 Meta-теги (шаблон)

**Главная:**
```
Title: Auto detailing Latvijā — 25+ studijas | DetailingRiga
Description: Labākās auto detailing studijas Rīgā un Latvijā. Polēšana, ķīmiskā tīrīšana, aplīmēšana. Salīdzini cenas, lasi atsauksmes, pierakstieties tiešsaistē.
```

**Категория:**
```
Title: Auto polēšana Latvijā — 18 studijas no 45 € | DetailingRiga
Description: Auto polēšana Latvijā — 18 sertificētas studijas. Cenas no 45 €. Salīdzini pakalpojumus un pierakstieties tiešsaistē.
```

**Город:**
```
Title: Auto detailing Rīgā — 22 studijas | DetailingRiga
Description: Labākās auto detailing studijas Rīgā. Polēšana, ķīmiskā tīrīšana, PPF plēves. Skatiet profilus, cenas un pierakstieties.
```

### 9.3 Schema.org

- `LocalBusiness` / `AutoRepair` для каждой студии
- `ItemList` для каталога
- `BreadcrumbList` на всех страницах
- `FAQPage` на категориях и городах
- `AggregateRating` для студий
- `Review` для отзывов

### 9.4 Внутренняя перелинковка

Footer содержит:
- Все категории
- Все города
- Районы Риги
- Популярные запросы (город + услуга pill-ссылки)

Каждая страница:
- Город → районы + категории
- Категория → города + студии
- Студия → город + категория + похожие

---

## 10. Файловая структура проекта

```
detailing/
├── public/                     # Document root
│   ├── index.php               # Front controller
│   ├── .htaccess               # URL rewriting
│   ├── robots.txt
│   ├── sitemap.xml
│   └── assets/
│       ├── css/
│       │   └── app.css         # Tailwind + custom
│       ├── js/
│       │   ├── app.js          # Основной JS
│       │   └── modules/
│       │       ├── search.js
│       │       ├── map.js
│       │       ├── calculator.js
│       │       ├── gallery.js
│       │       └── booking.js
│       └── images/
│           ├── logo.svg
│           ├── stock/          # Стоковые фото
│           └── icons/
│
├── app/
│   ├── Core/
│   │   ├── App.php
│   │   ├── Router.php
│   │   ├── Request.php
│   │   ├── Response.php
│   │   ├── Database.php
│   │   ├── Auth.php
│   │   ├── Validator.php
│   │   ├── Lang.php
│   │   └── Middleware/
│   │       ├── AuthMiddleware.php
│   │       ├── RoleMiddleware.php
│   │       ├── CsrfMiddleware.php
│   │       └── LanguageMiddleware.php
│   │
│   ├── Controllers/
│   │   ├── Public/
│   │   │   ├── HomeController.php
│   │   │   ├── CatalogController.php
│   │   │   ├── StudioController.php
│   │   │   ├── ServiceController.php
│   │   │   ├── CityController.php
│   │   │   ├── CalculatorController.php
│   │   │   ├── BlogController.php
│   │   │   └── PageController.php
│   │   ├── Auth/
│   │   │   ├── LoginController.php
│   │   │   ├── RegisterController.php
│   │   │   └── PasswordController.php
│   │   ├── Dashboard/
│   │   │   ├── DashboardController.php
│   │   │   ├── StudioController.php
│   │   │   ├── ServiceController.php
│   │   │   ├── GalleryController.php
│   │   │   ├── BookingController.php
│   │   │   ├── ReviewController.php
│   │   │   └── SettingsController.php
│   │   ├── Admin/
│   │   │   ├── AdminDashboardController.php
│   │   │   ├── AdminStudioController.php
│   │   │   ├── AdminUserController.php
│   │   │   ├── AdminBookingController.php
│   │   │   ├── AdminReviewController.php
│   │   │   ├── AdminCategoryController.php
│   │   │   ├── AdminCityController.php
│   │   │   ├── AdminPageController.php
│   │   │   ├── AdminSeoController.php
│   │   │   ├── AdminSettingsController.php
│   │   │   └── AdminImportController.php
│   │   └── Api/
│   │       └── V1/
│   │           ├── StudioApiController.php
│   │           ├── BookingApiController.php
│   │           ├── ReviewApiController.php
│   │           └── CalculatorApiController.php
│   │
│   ├── Models/
│   │   ├── User.php
│   │   ├── Studio.php
│   │   ├── StudioService.php
│   │   ├── ServiceCategory.php
│   │   ├── City.php
│   │   ├── District.php
│   │   ├── Review.php
│   │   ├── Booking.php
│   │   ├── Gallery.php
│   │   ├── Page.php
│   │   └── Setting.php
│   │
│   └── Helpers/
│       ├── functions.php
│       ├── seo.php
│       └── format.php
│
├── resources/
│   ├── views/
│   │   ├── layouts/
│   │   │   ├── main.php            # Публичный layout
│   │   │   ├── dashboard.php       # Business dashboard layout
│   │   │   └── admin.php           # Admin panel layout
│   │   ├── components/
│   │   │   ├── header.php
│   │   │   ├── footer.php
│   │   │   ├── studio-card.php
│   │   │   ├── service-card.php
│   │   │   ├── review-card.php
│   │   │   ├── city-card.php
│   │   │   ├── filters-sidebar.php
│   │   │   ├── map.php
│   │   │   ├── calculator.php
│   │   │   ├── booking-form.php
│   │   │   ├── breadcrumbs.php
│   │   │   ├── pagination.php
│   │   │   └── language-switcher.php
│   │   ├── public/
│   │   │   ├── home.php
│   │   │   ├── catalog.php
│   │   │   ├── studio.php
│   │   │   ├── service.php
│   │   │   ├── city.php
│   │   │   ├── calculator.php
│   │   │   └── blog.php
│   │   ├── dashboard/
│   │   ├── admin/
│   │   └── auth/
│   │
│   ├── lang/
│   │   ├── lv/
│   │   ├── ru/
│   │   └── en/
│   │
│   └── data/
│       └── riga-jurmala-detailing.json   # Исходные данные
│
├── config/
│   ├── app.php
│   ├── database.php
│   ├── routes.php
│   ├── routes-api.php
│   └── seo.php
│
├── database/
│   ├── migrations/
│   │   ├── 001_create_users.sql
│   │   ├── 002_create_cities.sql
│   │   ├── 003_create_districts.sql
│   │   ├── 004_create_service_categories.sql
│   │   ├── 005_create_studios.sql
│   │   ├── 006_create_studio_services.sql
│   │   ├── 007_create_studio_gallery.sql
│   │   ├── 008_create_reviews.sql
│   │   ├── 009_create_bookings.sql
│   │   ├── 010_create_pages.sql
│   │   └── 011_create_settings.sql
│   └── seeds/
│       ├── cities.sql
│       ├── districts.sql
│       ├── service_categories.sql
│       ├── superadmin.sql
│       └── import_studios.php       # Скрипт импорта из JSON
│
├── storage/
│   ├── uploads/
│   │   ├── logos/
│   │   ├── covers/
│   │   ├── galleries/
│   │   └── avatars/
│   ├── cache/
│   └── logs/
│
├── .env
├── .htaccess
└── composer.json
```

---

## 11. Импорт данных

### 11.1 Скрипт импорта из JSON

Файл `riga-jurmala-detailing.json` содержит 25 компаний. Скрипт `database/seeds/import_studios.php` читает JSON и вставляет данные в таблицы:

1. Для каждой компании из JSON → создать запись в `studios`
2. Из поля `services` → создать записи в `studio_services` (привязка к `service_categories`)
3. Рейтинг и кол-во отзывов → заполнить `rating`, `reviews_count`
4. `is_claimed = 0` (никто не подтвердил владение)
5. Slug генерировать из названия: `Baltic Detailing` → `baltic-detailing`

### 11.2 Маппинг городов

| JSON city | → cities.slug |
|-----------|---------------|
| Rīga / Rīга | riga |
| Jūrmala | jurmala |
| Mārupe | marupe |
| Piņķi (Mārupes novads) | pinki |

### 11.3 Маппинг районов

| JSON district | → districts.slug |
|---------------|-----------------|
| Latgales priekšpilsēta | latgales |
| Vidzemes priekšpilsēta | vidzemes |
| Zemgales priekšpilsēta | zemgales |
| Centra rajons | centrs |

### 11.4 Маппинг услуг

| JSON key | → service_categories.slug |
|----------|--------------------------|
| paint_polishing | auto-polesana |
| headlight_polishing | lukturu-polesana |
| interior_chemical_cleaning | kimiska-tirisana |
| car_wrapping.vinyl_wrap | vinila-aplimesana |
| car_wrapping.ppf | ppf-aizsargpleve |
| Керамическое покрытие | keramiskais-parklajums |
| Тонировка | tonesana |
| Детейлинг-мойка | diteilinga-mazgasana |
| Безкрасочное удаление вмятин | iespiedumu-nonemšana |

---

## 12. План разработки (Roadmap)

### Фаза 1 — Ядро (1-2 недели)
- [x] JSON данные (25 компаний)
- [ ] Структура проекта + файловая система
- [ ] Конфигурация (.env, database, routes)
- [ ] Core: Router, Database, Auth, Lang, Middleware
- [ ] Миграции + seeds (города, районы, категории)
- [ ] Импорт данных из JSON
- [ ] Superadmin seed

### Фаза 2 — Публичные страницы (1-2 недели)
- [ ] Layout (main.php) + header/footer
- [ ] Главная страница (hero, поиск, карта, категории, города)
- [ ] Каталог студий (фильтры, сортировка, карта)
- [ ] Профиль студии (полная информация, галерея, отзывы)
- [ ] Страницы категорий
- [ ] Страницы городов/районов
- [ ] Калькулятор цен
- [ ] Mobile responsive

### Фаза 3 — Авторизация + Бизнес-кабинет (1 неделя)
- [ ] Регистрация / вход
- [ ] Dashboard layout
- [ ] Управление профилем студии
- [ ] Управление услугами и ценами
- [ ] Галерея (drag & drop upload)
- [ ] Рабочее время
- [ ] Просмотр записей
- [ ] Ответы на отзывы

### Фаза 4 — Superadmin (1 неделя)
- [ ] Admin layout + дашборд
- [ ] Таблица студий + полное редактирование
- [ ] Управление юзерами
- [ ] Модерация отзывов
- [ ] Управление категориями/городами
- [ ] SEO настройки
- [ ] Импорт из JSON через UI

### Фаза 5 — Фичи + полировка (1 неделя)
- [ ] Онлайн запись (форма + email уведомления)
- [ ] Система отзывов (оставить + модерация)
- [ ] Калькулятор цен (интерактивный)
- [ ] SEO: schema.org, sitemap, мета-теги
- [ ] Блог (базовый)
- [ ] Performance: lazy loading, image optimization
- [ ] Тестирование на мобильных устройствах
