# TenerifeProp - Карта сайта ## Структура страниц ### Публичные страницы ``` / # Главная страница (Landing) ├── #hero # Главный баннер ├── #advantages # Преимущества ├── #catalog # Каталог недвижимости ├── #services # Услуги ├── #testimonials # Отзывы ├── #faq # Вопросы-ответы └── #contact # Контакты /property/:slug # Страница объекта недвижимости ├── #gallery # Галерея изображений ├── #details # Детали объекта ├── #utilities # Коммуникации ├── #location # Карта └── #contact-form # Форма запроса /admin # Админ-панель (требует авторизации) ├── /dashboard # Dashboard - статистика ├── /properties # Управление объектами │ ├── /list # Список │ └── /new # Новый объект ├── /leads # Управление заявками ├── /testimonials # Управление отзывами ├── /faq # Управление FAQ ├── /services # Управление услугами └── /settings # Настройки сайта ``` ## Навигация ### Главное меню (Navbar) - **Inicio** → `/#hero` - **Catálogo** → `/#catalog` - **Servicios** → `/#services` - **Testimonios** → `/#testimonials` - **Contacto** → `/#contact` ### Языковой переключатель - **ES** (Испанский) - по умолчанию - **RU** (Русский) - **EN** (Английский) ### Footer меню - **Aviso Legal** → `/legal` - **Política de Privacidad** → `/privacy` - **Política de Cookies** → `/cookies` ## Пользовательский воркфлоу ### Покупатель (Client Journey) ``` 1. Главная страница ↓ 2. Просмотр каталога → Фильтры (тип, цена, город) ↓ 3. Выбор объекта → Карточка объекта ↓ 4. Просмотр деталий (фото, характеристики, карта) ↓ 5. Отправка заявки (форма контакта) ↓ 6. Получение подтверждения → Ожидание звонка ``` ### Администратор (Admin Journey) ``` 1. Вход в админку → /admin ↓ 2. Dashboard → Статистика, графики ↓ 3. Управление объектами ├── Добавление нового объекта ├── Редактирование объекта └── Изменение статуса (active/sold/reserved) ↓ 4. Управление заявками ├── Просмотр новых заявок ├── Изменение статуса (new/contaced/closed) └── Добавление заметок ↓ 5. Управление контентом ├── Отзывы → Модерация ├── FAQ → Редактирование └── Услуги → Обновление ``` ## Связность данных (Data Binding) ### Связи между сущностями ``` Property ├── id (UUID) ├── slug (URL-friendly) ├── city → Фильтр по городам ├── type → Фильтр по типу └── leads → Заявки с property_id Lead ├── id (UUID) ├── property_id → Связь с Property └── status → Статус обработки Testimonial ├── id (UUID) ├── property_id → Связь с Property (опционально) └── is_approved → Модерация FAQ ├── id (UUID) ├── category → Группировка └── order_num → Порядок отображения Service ├── id (UUID) ├── order_num → Порядок отображения └── is_active → Активность ``` ## API Endpoints связности ### Получение объекта по slug ```http GET /api/properties/:slug?lang=es ``` ### Получение похожих объектов ```http GET /api/properties?type=urban&city=Adeje&limit=3 ``` ### Создание заявки для объекта ```http POST /api/leads { "name": "John Doe", "email": "john@example.com", "phone": "+34 600 123 456", "property_id": "prop-001", "message": "Interested in this property" } ``` ## Роутинг ### Public Routes | Route | File | Description | |-------|------|-------------| | `/` | `public/index.html` | Landing page | | `/property/:slug` | `public/property.html` | Property details | | `/admin` | `public/admin.html` | Admin panel SPA | | `/admin/*` | `public/admin.html` | Admin SPA routes | ### API Routes | Prefix | Access | Description | |--------|--------|-------------| | `/api/auth/*` | Public | Authentication | | `/api/properties/*` | Public | Properties catalog | | `/api/leads` | Public POST only | Create lead | | `/api/testimonials` | Public | Testimonials | | `/api/faq` | Public | FAQ | | `/api/services` | Public | Services | | `/api/settings` | Public | Site settings | | `/api/admin/*` | Admin only | Admin operations | ## Статусы и переходы ### Property Status ``` active → reserved → sold ↓ ↓ inactive inactive ``` ### Lead Status ``` new → contacted → qualified → negotiating → closed ↓ ↓ lost lost ``` ## Кэширование ### Static Files - HTML: no-cache (SPA) - CSS/JS: cache with version - Images: long-term cache ### API Responses - Properties: 5 min cache - Settings: 1 hour cache - FAQ/Services: 10 min cache - Leads: no cache