Files
marketplaces/docs/СХЕМА_РАБОТЫ.md
2026-01-18 18:57:06 +04:00

167 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎯 Визуальная схема: Как работает мультибрендинг
```
┌─────────────────────────────────────────────────────────┐
│ ЗАПУСК ПРИЛОЖЕНИЯ │
└─────────────────────────────────────────────────────────┘
├──────────────┬──────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────┐ ┌─────────────┐
│ ng serve │ │ng serve │ │ ng build │
│ │ │ --config │ │ --config │
│ (Dexar Dev) │ │ novo │ │novo-product.│
└──────────────┘ └──────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌───────────────────────────────────────────────┐
│ ANGULAR.JSON выбирает: │
│ • Какой environment.ts использовать │
│ • Какую тему (SCSS) подключить │
│ • Куда сохранить сборку (dist/) │
└───────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌────────────────────┐ ┌─────────────┐ ┌──────────────┐
│ environment.ts │ │environment. │ │environment. │
│ (Dexar) │ │ novo.ts │ │novo.prod.ts │
│ │ │ (novo) │ │ (novo Prod) │
│ • brandName │ │• brandName │ │• brandName │
│ • apiUrl │ │• apiUrl │ │• apiUrl │
│ • theme: 'dexar' │ │• theme:novo │ │• theme: novo │
│ • colors: purple │ │• colors: │ │• colors: │
│ • email │ │ green 🟢 │ │ green 🟢 │
└────────────────────┘ └─────────────┘ └──────────────┘
│ │ │
▼ ▼ ▼
┌───────────────────────────────────────────────┐
ТЕМА (SCSS) загружается: │
│ • dexar.theme.scss → фиолетовый 🟣 │
│ • novo.theme.scss → зеленый 🟢 │
│ │
│ CSS переменные устанавливаются: │
│ --primary-color │
│ --gradient-hero │
│ --shadow-lg и т.д. │
└───────────────────────────────────────────────┘
┌────────────────────────────────────────────────┐
│ КОМПОНЕНТЫ читают данные: │
│ │
│ HeaderComponent │
│ brandName = environment.brandFullName │
│ → "Dexar Market" ИЛИ "novo Market" │
│ │
│ FooterComponent │
│ brandName = environment.brandName │
│ email = environment.contactEmail │
│ │
│ HomeComponent │
│ brandName = environment.brandFullName │
│ │
│ ApiService │
│ baseUrl = environment.apiUrl │
│ → api.dexarmarket.ru ИЛИ api.novomarket.ru│
└────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ РЕЗУЛЬТАТ В БРАУЗЕРЕ: │
│ │
│ 🟣 DEXAR MARKET 🟢 novo MARKET │
│ ──────────────── ───────────── │
│ Название: Dexar Market Название: novo │
│ Цвета: фиолетовый Цвета: зеленый │
│ Hero: фиолетовый фон Hero: зеленый фон │
│ Кнопки: #667eea Кнопки: #10b981 │
│ API: dexarmarket.ru API: novomarket.ru │
│ Email: info@dexarmarket Email: info@novo... │
└─────────────────────────────────────────────────┘
```
## 🔄 Поток данных:
```
Команда запуска → angular.json → Environment файл → Тема (CSS) → Компоненты → Браузер
│ │
├── Переменные ├── CSS vars
│ (JS) │ (SCSS)
│ │
└── brandName └── --primary-color
apiUrl --gradient-hero
email и т.д.
```
## 🎨 Цветовая схема:
### Dexar (Фиолетовый) 🟣:
```
Primary: #667eea ███████
Secondary: #764ba2 ███████
Accent: #f093fb ███████
Gradient: #667eea → #764ba2
```
### novo (Зеленый) 🟢:
```
Primary: #10b981 ███████
Secondary: #14b8a6 ███████
Accent: #34d399 ███████
Gradient: #10b981 → #14b8a6
```
## 📦 Структура файлов:
```
Dexarmarket/
├── src/
│ ├── environments/ ← Конфигурации брендов
│ │ ├── environment.ts (Dexar Dev)
│ │ ├── environment.production.ts (Dexar Prod)
│ │ ├── environment.novo.ts (novo Dev) 🆕
│ │ └── environment.novo.production.ts (novo Prod) 🆕
│ │
│ ├── styles/
│ │ └── themes/ ← Цветовые темы
│ │ ├── dexar.theme.scss (фиолетовый)
│ │ └── novo.theme.scss (зеленый) 🆕
│ │
│ └── app/
│ ├── components/ ← Используют environment
│ │ ├── header/ (brandName)
│ │ └── footer/ (brandName, email)
│ ├── pages/
│ │ └── home/ (brandName)
│ └── services/
│ └── api.service.ts (apiUrl)
├── angular.json ← Конфигурации сборки 🔧
├── package.json ← NPM scripts 🔧
└── dist/ ← Результаты сборки
├── dexarmarket/ (после build:dexar)
└── novomarket/ (после build:novo) 🆕
```
## 🚀 Команды и их эффект:
```bash
# Команда Environment Тема Порт Результат
npm start → environment.ts → dexar.scss → 4200 → Dexar 🟣
npm run start:novo → environment.novo.ts → novo.scss → 4201 → novo 🟢
npm run build:dexar → environment.prod.ts → dexar.scss → dist/dexarmarket/
npm run build:novo → environment.novo... → novo.scss → dist/novomarket/
```
## 💡 Как добавить 3-й бренд (например "Blue Market"):
1. Создать `environment.blue.ts` и `environment.blue.production.ts`
2. Создать `blue.theme.scss` с синими цветами
3. Добавить конфигурации в `angular.json`
4. Добавить скрипты в `package.json`
5. Готово! `npm run start:blue`
Легко! 🎉