diff --git a/angular.json b/angular.json index 3302bef..0698c77 100644 --- a/angular.json +++ b/angular.json @@ -88,6 +88,10 @@ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.novo.ts" + }, + { + "replace": "src/app/brands/brand-routes.ts", + "with": "src/app/brands/brand-routes.novo.ts" } ], "index": "src/index.novo.html", @@ -105,6 +109,10 @@ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.novo.production.ts" + }, + { + "replace": "src/app/brands/brand-routes.ts", + "with": "src/app/brands/brand-routes.novo.ts" } ], "index": "src/index.novo.html", diff --git a/docs/NOVO_TODO.md b/docs/NOVO_TODO.md deleted file mode 100644 index ed1c69c..0000000 --- a/docs/NOVO_TODO.md +++ /dev/null @@ -1,90 +0,0 @@ -# Список документов требующих обновления для novo Market - -## ✅ Обновлено автоматически через environment: -- Header (название бренда) -- Footer (название бренда, copyright) -- Home page (название бренда, hero секция) - -## ⏳ Требуется обновить вручную при наличии данных: - -### 1. Контактная информация -- `src/app/pages/info/contacts/contacts.component.html` -- `src/app/pages/info/faq/faq.component.html` (email, телефоны) - -### 2. Реквизиты компании -- `src/app/pages/legal/company-details/company-details.component.html` - - Название компании - - ИНН, КПП, ОГРН - - Юридический адрес - - Банковские реквизиты - - Контактная информация - -### 3. Правовые документы (когда будут реквизиты) -- `src/app/pages/legal/public-offer/public-offer.component.html` -- `src/app/pages/legal/privacy-policy/privacy-policy.component.html` -- `src/app/pages/legal/return-policy/return-policy.component.html` -- `src/app/pages/legal/payment-terms/payment-terms.component.html` - -### 4. Информационные страницы -- `src/app/pages/info/about/about.component.html` - "О компании" -- `src/app/pages/info/delivery/delivery.component.html` - проверить упоминания -- `src/app/pages/info/guarantee/guarantee.component.html` - проверить упоминания -- `src/app/pages/info/faq/faq.component.html` - проверить упоминания - -### 5. Meta теги и SEO -- `src/index.html` - - title - - meta description - - og:title, og:url, og:image - - twitter:title, twitter:url, twitter:image - - telegram:channel - -### 6. Конфигурационные файлы (при деплое) -- `nginx.conf` - обновить domain name -- `proxy.conf.json` - обновить API URL -- `public/robots.txt` - обновить sitemap URL - -### 7. Документация -- `README.md` - обновить упоминания -- `DEPLOYMENT.md` - добавить инструкции для novo -- `TROUBLESHOOTING.md` - добавить novo-специфичные советы - -### 8. Изображения и ассеты -- Добавить логотип: `public/assets/images/novo-logo.svg` -- Добавить favicon для novo -- Обновить og:image для novo -- Добавить иконки категорий (если отличаются) - -## Поиск упоминаний "Dexar" в коде - -Используйте поиск для нахождения всех упоминаний: -```bash -# В VS Code используйте Ctrl+Shift+F и ищите: -Dexar -dexar -DEXAR -DexarMarket -dexarmarket -``` - -## Автоматическая замена (осторожно!) - -Можно использовать для массовой замены в документах: -```bash -# Найти все файлы с упоминанием "Dexar" -grep -r "Dexar" src/app/pages/ -``` - -## Рекомендуемый подход - -1. **Сейчас**: Система настроена, работает с environment -2. **Когда будут реквизиты**: Обновить правовые документы -3. **Перед деплоем**: Обновить meta теги, nginx, robots.txt -4. **После деплоя**: Протестировать все страницы novo Market - -## Важно помнить - -- Не нужно дублировать код - используйте environment -- Правовые документы должны иметь корректные реквизиты -- SEO теги важны для поисковиков -- Проверьте все ссылки и email адреса diff --git a/docs/QUICK_START_NOVO.md b/docs/QUICK_START_NOVO.md deleted file mode 100644 index eaf5894..0000000 --- a/docs/QUICK_START_NOVO.md +++ /dev/null @@ -1,55 +0,0 @@ -# 🚀 Быстрый старт - novo Market - -## Запуск novo Market (зеленый): - -```bash -npm run start:novo -``` -Откройте: http://localhost:4201 - -## Запуск Dexar Market (фиолетовый): - -```bash -npm run start:dexar -# или просто -npm start -``` -Откройте: http://localhost:4200 - -## Сборка для продакшена: - -```bash -# novo Market -npm run build:novo - -# Dexar Market -npm run build:dexar -``` - -## Что вы увидите в novo Market: - -✅ **Название**: "novo Market" (вместо Dexar Market) -✅ **Цвета**: Зеленые градиенты 🟢 -✅ **Hero секция**: Зеленый фон -✅ **Кнопки**: Зеленые (#10b981) -✅ **Карточки**: Зеленые эффекты при hover -✅ **Footer**: "novo Market" в copyright - -## Сравнение: - -| Элемент | Dexar | novo | -|---------|-------|------| -| Основной цвет | 🟣 #667eea | 🟢 #10b981 | -| Градиент | Фиолетовый | Зеленый | -| Название | Dexar Market | novo Market | -| Порт | 4200 | 4201 | - -## Следующие шаги: - -1. ✅ Запустите `npm run start:novo` -2. ✅ Откройте http://localhost:4201 -3. ✅ Проверьте зеленые цвета -4. ⏳ Добавьте логотип novo -5. ⏳ Обновите реквизиты (когда будут) - -Готово! 🎉 diff --git a/docs/README_NOVO.md b/docs/README_NOVO.md deleted file mode 100644 index bb05100..0000000 --- a/docs/README_NOVO.md +++ /dev/null @@ -1,84 +0,0 @@ -# 🎉 Проект готов! Два бренда - один код - -## ✅ Что сделано: - -1. **Создана система мультибрендинга** - - Один проект поддерживает несколько брендов - - Каждый бренд имеет свои цвета, название, контакты - -2. **Настроено 2 бренда:** - - 🟣 **Dexar Market** - фиолетовый (действующий) - - 🟢 **novo Market** - зеленый (новый) - -3. **Автоматическое переключение:** - - Цвета - - Название бренда - - Контактная информация - - API endpoints - -## 🚀 Быстрый старт novo Market: - -```bash -# Запустить novo Market (зеленый) -npm run start:novo -``` - -Откройте: **http://localhost:4201** - -Вы увидите: -- ✅ Название "novo Market" -- ✅ Зеленые цвета (#10b981) -- ✅ Зеленый hero блок -- ✅ Зеленые кнопки и эффекты - -## 📚 Документация: - -Подробная информация в файлах: - -1. **ГОТОВО_novo.md** - Краткое резюме (НАЧНИТЕ С ЭТОГО!) -2. **QUICK_START_novo.md** - Быстрый старт -3. **MULTI_BRAND.md** - Полное руководство -4. **novo_TODO.md** - Что нужно доделать -5. **СХЕМА_РАБОТЫ.md** - Визуальная схема -6. **SETUP_COMPLETE.md** - Детальное описание - -## ⏰ Следующие шаги для novo: - -### Срочно (чтобы показать): -- [ ] Добавить логотип novo (`public/assets/images/novo-logo.svg`) -- [ ] Обновить телефоны в environment - -### Когда будут реквизиты: -- [ ] Обновить реквизиты компании -- [ ] Проверить правовые документы -- [ ] Обновить контакты - -### Перед деплоем: -- [ ] Настроить домен novomarket.ru -- [ ] Настроить SSL -- [ ] Создать nginx конфиг -- [ ] Обновить meta теги - -## 🎨 Цвета novo Market: - -```scss -Основной: #10b981 (зеленый) -Вторичный: #14b8a6 (бирюзовый) -Акцент: #34d399 (светло-зеленый) -``` - -## 📋 Команды: - -```bash -# Разработка -npm run start:dexar # Dexar Market (порт 4200) -npm run start:novo # novo Market (порт 4201) - -# Продакшн сборка -npm run build:dexar # → dist/dexarmarket/ -npm run build:novo # → dist/novomarket/ -``` - ---- - -**ЗАПУСТИТЕ СЕЙЧАС:** `npm run start:novo` и посмотрите результат! 🚀 diff --git a/docs/REQUIRED.MD b/docs/REQUIRED.MD deleted file mode 100644 index e744339..0000000 --- a/docs/REQUIRED.MD +++ /dev/null @@ -1,137 +0,0 @@ -# 📋 Список информации для заполнения перед запуском - -## ⚠️ Обязательная информация - -### 1. Реквизиты компании -**Файл:** `src/app/pages/legal/company-details/company-details.component.html` - -Необходимо заполнить: -- **Полное наименование организации** (ООО, АО, ИП и т.д.) -- **Сокращенное наименование** -- **Юридический адрес** (с индексом) -- **Фактический адрес** (если отличается) -- **ИНН** (10 или 12 цифр) -- **ОГРН/ОГРНИП** (13 или 15 цифр) -- **КПП** (для юр. лиц, 9 цифр) -- **Генеральный директор / ИП** (ФИО полностью) -- **Основание действий** (Устав / свидетельство о регистрации ИП) - -### 2. Банковские реквизиты -**Файл:** `src/app/pages/legal/company-details/company-details.component.html` - -- **Наименование банка** -- **БИК банка** (9 цифр) -- **Корреспондентский счет** (20 цифр, начинается с 301) -- **Расчетный счет** (20 цифр, начинается с 407 или 408) - -### 3. Контактная информация - -**Везде, где встречается "⚠️ ТРЕБУЕТСЯ ЗАПОЛНИТЬ":** - -- **Email службы поддержки** (например: support@dexarmarket.ru) -- **Телефон поддержки** (например: +7 (XXX) XXX-XX-XX) -- **Телефон для звонков** (может совпадать с поддержкой) -- **Рабочие часы** (сейчас указано 9:00-21:00 МСК — проверьте актуальность) - -**Файлы, где нужно заменить контакты:** - -1. `src/app/pages/legal/company-details/company-details.component.html` (3 места) -2. `src/app/pages/info/payment-terms/payment-terms.component.html` (раздел 9.1) -3. `src/app/pages/info/faq/faq.component.html` (3 места в разделе "Служба поддержки") -4. `src/app/pages/legal/return-policy/return-policy.component.html` (может быть) -5. `src/app/pages/info/guarantee/guarantee.component.html` (может быть) - -### 4. Адрес для возврата товаров - -**Файл:** `src/app/pages/legal/return-policy/return-policy.component.html` - -В разделе "Процедура возврата" нужно указать: -- **Полный почтовый адрес**, куда покупатели должны отправлять возвраты -- **Получатель** (название компании) -- **Индекс** - ---- - -## 🔍 Рекомендуемая информация (необязательно, но желательно) - -### 5. Дополнительные контакты -- **Telegram-канал поддержки** (если есть) -- **WhatsApp** (если используете) -- **Адрес офиса для личных визитов** (если принимаете клиентов) - -### 6. Платежные данные -- **Наименование платежного провайдера** (например: ЮKassa, Тинькофф Эквайринг, CloudPayments) -- **ID магазина** в платежной системе (для интеграции) - -### 7. Лицензии и сертификаты (если применимо) -- Номера лицензий на отдельные виды деятельности -- Сертификаты качества -- Членство в СРО (если есть) - ---- - -## ✅ Чек-лист перед запуском - -- [ ] Заполнены все реквизиты компании -- [ ] Указаны email и телефон поддержки (везде одинаковые!) -- [ ] Проверены банковские реквизиты -- [ ] Указан адрес для возврата товаров -- [ ] Проверено время работы поддержки -- [ ] Все ссылки на email/телефон работают (кликабельные) -- [ ] Протестирована отправка email с этого адреса -- [ ] Настроена переадресация звонков на указанный телефон - ---- - -## 🚨 Критические моменты (юридические) - -1. **ИНН/ОГРН должны быть настоящими** — их проверяют через налоговую -2. **Банковские реквизиты должны быть действующими** — иначе не будет возвратов -3. **Email поддержки должен работать** — законом предусмотрена обязанность отвечать -4. **Юридический адрес должен быть настоящим** — по нему приходят документы - ---- - -## 📝 Формат для заполнения (пример) - -``` -ПОЛНОЕ НАЗВАНИЕ: Общество с ограниченной ответственностью "ДексарМаркет" -СОКРАЩЕННОЕ: ООО "ДексарМаркет" -ИНН: 1234567890 -ОГРН: 1234567890123 -КПП: 123456789 -АДРЕС: 123456, г. Москва, ул. Примерная, д. 1, офис 100 -ДИРЕКТОР: Иванов Иван Иванович -ТЕЛЕФОН: +7 (495) 123-45-67 -EMAIL: support@dexarmarket.ru - -БАНК: ПАО "Сбербанк России" -БИК: 044525225 -К/С: 30101810400000000225 -Р/С: 40702810123456789012 -``` - ---- - -## 🔗 Где искать зачеркнутый текст - -Все места с `⚠️ ТРЕБУЕТСЯ ЗАПОЛНИТЬ` и красным зачеркиванием: - -```bash -# Поиск в проекте (команда для терминала): -grep -r "ТРЕБУЕТСЯ ЗАПОЛНИТЬ" src/app/pages/ -``` - -Результаты: -- `company-details.component.html` — 13 мест -- `payment-terms.component.html` — 2 места -- `faq.component.html` — 3 места - ---- - -**После заполнения всех данных удалите эти строки:** -```html -⚠️ ТРЕБУЕТСЯ ЗАПОЛНИТЬ -``` - -И замените их на реальную информацию! \ No newline at end of file diff --git a/docs/SETUP_COMPLETE.md b/docs/SETUP_COMPLETE.md deleted file mode 100644 index d6a4afc..0000000 --- a/docs/SETUP_COMPLETE.md +++ /dev/null @@ -1,108 +0,0 @@ -# 🎉 Система мультибрендинга настроена! - -## ✅ Что сделано: - -### 1. **Environment файлы** (конфигурация брендов) -- ✅ `src/environments/environment.ts` - Dexar Dev -- ✅ `src/environments/environment.production.ts` - Dexar Prod -- ✅ `src/environments/environment.novo.ts` - novo Dev -- ✅ `src/environments/environment.novo.production.ts` - novo Prod - -### 2. **Темы оформления** (цвета) -- ✅ `src/styles/themes/dexar.theme.scss` - Фиолетовая тема -- ✅ `src/styles/themes/novo.theme.scss` - **Зеленая тема** 🟢 - -### 3. **Angular конфигурации** -- ✅ `angular.json` обновлен с 4 конфигурациями: - - `development` - Dexar разработка - - `production` - Dexar продакшн - - `novo` - novo разработка - - `novo-production` - novo продакшн - -### 4. **Компоненты обновлены** -- ✅ Header - использует `brandName` из environment -- ✅ Footer - использует `brandName` из environment -- ✅ Home - использует `brandName` из environment -- ✅ Все стили используют CSS переменные для цветов - -## 🚀 Как запустить: - -### Dexar Market (текущий, фиолетовый): -```bash -ng serve -``` - -### novo Market (новый, зеленый): -```bash -ng serve --configuration=novo --port 4201 -``` - -### Сборка: -```bash -# Dexar -ng build --configuration=production -# Результат: dist/dexarmarket/ - -# novo -ng build --configuration=novo-production -# Результат: dist/novomarket/ -``` - -## 🎨 Цвета novo Market: - -``` -Основной цвет: #10b981 (зеленый) -Вторичный: #14b8a6 (бирюзовый) -Акцент: #34d399 (светло-зеленый) -Градиенты: зеленые -Hero фон: зеленый градиент -``` - -## 📋 Что нужно сделать дальше для novo: - -### Сейчас (когда будут данные): -1. Добавить логотип novo Market: `public/assets/images/novo-logo.svg` -2. Обновить телефоны в `environment.novo.ts` и `environment.novo.production.ts` -3. Настроить API endpoint (сейчас: `https://api.novomarket.ru:445`) - -### Когда будут реквизиты: -4. Обновить `company-details.component.html` с реквизитами novo -5. Проверить все правовые документы -6. Обновить контактную информацию - -### Перед деплоем: -7. Создать `nginx.conf` для novomarket.ru -8. Обновить meta теги в `index.html` -9. Настроить SSL сертификаты -10. Обновить `robots.txt` - -## 📖 Документация: - -- `MULTI_BRAND.md` - Полная документация по мультибрендингу -- `novo_TODO.md` - Список того, что нужно обновить для novo - -## ⚡ Преимущества: - -- ✅ Один код для двух брендов -- ✅ Легко добавить новые бренды -- ✅ Автоматическое переключение цветов -- ✅ Автоматическое переключение названий -- ✅ Раздельные сборки -- ✅ Минимум дублирования - -## 🔄 Переключение между брендами: - -Просто запустите с нужной конфигурацией - все остальное произойдет автоматически: -- Цвета изменятся на зеленые -- Название сменится на "novo Market" -- Email изменится на info@novomarket.ru -- API будет указывать на novomarket API - -## ✨ Примечание: - -Сейчас можете проверить novo Market, запустив: -```bash -ng serve --configuration=novo --port 4201 -``` - -Откройте http://localhost:4201 и увидите зеленый novo Market! 🟢 diff --git a/docs/ГОТОВНОСТЬ_К_РАЙФФАЙЗЕНБАНКУ.md b/docs/ГОТОВНОСТЬ_К_РАЙФФАЙЗЕНБАНКУ.md deleted file mode 100644 index 7856994..0000000 --- a/docs/ГОТОВНОСТЬ_К_РАЙФФАЙЗЕНБАНКУ.md +++ /dev/null @@ -1,285 +0,0 @@ -# ✅ ОТЧЕТ ПО ТРЕБОВАНИЯМ РАЙФФАЙЗЕНБАНКА - -## 📋 Все требования выполнены! - ---- - -## 1️⃣ ОБЯЗАТЕЛЬНЫЕ ДОКУМЕНТЫ И РАЗДЕЛЫ - -### ✅ Реквизиты организации -- ✅ Полное наименование: **ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ «ИНТ ФИН ЛОГИСТИК»** -- ✅ ИНН: **9909697628** (RUS) / **03033502** (ARM) -- ✅ КПП: **770287001** -- ✅ ОГРН: **85.110.1408711** -- ✅ Юридический адрес в Армении -- ✅ Фактические адреса (Ереван, Москва) -- ✅ Банковские реквизиты (АО "Райффайзенбанк") -- ✅ Генеральный директор: Оганнисян Ашот Рафикович -- ✅ Контакты: Email, 2 телефона (RUS/ARM), часы работы - -**📄 Страница:** [/company-details](https://dexarmarket.ru/company-details) - ---- - -### ✅ Правила оплаты (на русском языке) -- ✅ Общие положения об оплате -- ✅ Способы оплаты (карты МИР, Visa, Mastercard, СБП, кошельки) -- ✅ **Логотипы платежных систем:** - - ✅ **МИР** (обязательное требование!) - - ✅ Visa - - ✅ Mastercard -- ✅ Процесс оплаты (6 шагов) -- ✅ Безопасность платежей: - - ✅ **PCI DSS** сертификация - - ✅ **3D-Secure** (Verified by Visa, Mastercard SecureCode) - - ✅ Шифрование **SSL/TLS** - - ✅ Соответствие **Положению ЦБ РФ № 382-П** -- ✅ Подтверждение оплаты (электронный чек по 54-ФЗ) -- ✅ Возврат средств (сроки по способам оплаты) -- ✅ Неуспешные платежи (причины и действия) -- ✅ Контакты поддержки - -**📄 Страница:** [/payment-terms](https://dexarmarket.ru/payment-terms) - ---- - -### ✅ Политика возвратов (на русском языке) -- ✅ Общие положения (Закон РФ «О защите прав потребителей») -- ✅ Сроки возврата: - - Физические товары надлежащего качества: **7 дней** - - Физические товары ненадлежащего качества: гарантийный срок - - Цифровые товары: до начала предоставления -- ✅ Условия возврата физических товаров -- ✅ Товары, не подлежащие возврату (**Постановление РФ №2463**) -- ✅ Процедура возврата (8 шагов) -- ✅ Возврат денежных средств (сроки: 10 дней) -- ✅ Обмен товара -- ✅ Гарантийное обслуживание -- ✅ Ответственность сторон (маркетплейс как посредник) -- ✅ Контактная информация - -**📄 Страница:** [/return-policy](https://dexarmarket.ru/return-policy) - ---- - -### ✅ Публичная оферта (на русском языке) -- ✅ Основные понятия и определения -- ✅ **Модель маркетплейса:** - - Владелец сайта = информационный посредник - - Продавцы несут ответственность за качество товаров - - Разграничение ответственности сторон -- ✅ Общие положения (соответствие ГК РФ) -- ✅ Предмет соглашения -- ✅ Условия продажи товаров и оказания услуг -- ✅ Регистрация пользователей -- ✅ Права и обязанности владельца сайта -- ✅ Права и обязанности пользователя -- ✅ Раздел **"ОТВЕТСТВЕННОСТЬ СТОРОН"**: - - ✅ Владелец сайта не несет ответственности за качество товаров продавцов - - ✅ Претензии направляются продавцу - - ✅ Ограничение ответственности платформы -- ✅ Товар и порядок совершения покупки -- ✅ Доставка товаров (перевозчики: СДЭК, Почта России, Boxberry, DPD, Яндекс.Доставка) -- ✅ Возврат товаров -- ✅ Интеллектуальная собственность -- ✅ Заключительные положения - -**📄 Страница:** [/public-offer](https://dexarmarket.ru/public-offer) - ---- - -### ✅ Условия гарантии (на русском языке) -- ✅ Общие положения о гарантии -- ✅ Сроки гарантии (12-36 месяцев в зависимости от категории) -- ✅ Условия предоставления гарантии -- ✅ Гарантийный ремонт и замена (срок: до 45 дней) -- ✅ Исключения из гарантии (механические повреждения, самостоятельный ремонт) -- ✅ Порядок обращения за гарантийным обслуживанием -- ✅ Права покупателя при существенных недостатках -- ✅ Контактная информация - -**📄 Страница:** [/guarantee](https://dexarmarket.ru/guarantee) - ---- - -### ✅ Политика конфиденциальности (на русском языке) -- ✅ Общие положения (ФЗ-152 «О персональных данных») -- ✅ Термины и определения -- ✅ Принципы обработки персональных данных -- ✅ Цели обработки персональных данных -- ✅ Категории персональных данных -- ✅ Порядок и условия обработки -- ✅ Права субъектов персональных данных -- ✅ Меры по обеспечению безопасности -- ✅ Обновлено: правильное название компании, ИНН, адрес сайта - -**📄 Страница:** [/privacy-policy](https://dexarmarket.ru/privacy-policy) - ---- - -## 2️⃣ ОБЯЗАТЕЛЬНЫЕ ЭЛЕМЕНТЫ НА САЙТЕ - -### ✅ Логотип платежной системы МИР -- ✅ Размещен в **футере сайта** (на всех страницах) -- ✅ Размещен на **странице "Правила оплаты"** -- ✅ Формат: SVG (векторный, качественный) -- ✅ Официальные цвета бренда МИР (#4DB45E - зеленый) - -**🎨 Также добавлены логотипы:** Visa, Mastercard - ---- - -### ✅ Чекбокс согласия с условиями в корзине -- ✅ Обязательный чекбокс перед оформлением заказа -- ✅ Кнопка "Оформить заказ" **неактивна** без галочки -- ✅ **4 ссылки в тексте согласия:** - 1. ✅ [Публичная оферта](https://dexarmarket.ru/public-offer) - 2. ✅ [Политика возврата](https://dexarmarket.ru/return-policy) - 3. ✅ [Условия гарантии](https://dexarmarket.ru/guarantee) ← **Добавлено по требованию!** - 4. ✅ [Политика конфиденциальности](https://dexarmarket.ru/privacy-policy) -- ✅ Все ссылки открываются в новой вкладке -- ✅ Реализовано через ngModel (Angular) - -**📄 Расположение:** Страница корзины `/cart` - -**Текст чекбокса:** -> "Я согласен с публичной офертой, политикой возврата, условиями гарантии и политикой конфиденциальности" - ---- - -## 3️⃣ РЕКОМЕНДАЦИИ ПО ОПЛАТЕ ПО ССЫЛКЕ - -### ✅ Документация подготовлена -- ✅ Создан файл **RAIFFEISENBANK_REQUIREMENTS.md** -- ✅ Шаблоны писем для отправки платежных ссылок -- ✅ Рекомендации по получению подтверждений от покупателей -- ✅ Инструкции по защите от chargeback (оспаривание платежей) -- ✅ Чек-лист готовности - -**Рекомендованный процесс:** -1. Отправлять ссылку + условия в одном сообщении -2. Получать подтверждение "Согласен" от покупателя (желательно) -3. Сохранять переписку для доказательной базы -4. Логировать IP, timestamp, действия пользователя - ---- - -## 4️⃣ ДОПОЛНИТЕЛЬНЫЕ РАЗДЕЛЫ (СВЕРХ ТРЕБОВАНИЙ) - -### ✅ Страница "О компании" -- ✅ Информация о маркетплейсе -- ✅ Миссия и ценности -- ✅ Описание модели работы - -**📄 Страница:** [/about](https://dexarmarket.ru/about) - ---- - -### ✅ Страница "Доставка" -- ✅ Условия доставки -- ✅ Перевозчики: СДЭК, Почта России, Boxberry, DPD, Яндекс.Доставка -- ✅ Юридическая информация о доставке -- ✅ Сроки и стоимость - -**📄 Страница:** [/delivery](https://dexarmarket.ru/delivery) - ---- - -### ✅ FAQ (Часто задаваемые вопросы) -- ✅ 40+ вопросов и ответов -- ✅ 10 разделов: - - Общие вопросы - - Оформление заказа - - Оплата - - Доставка - - Возврат и обмен - - Гарантия - - Безопасность и конфиденциальность - - Для продавцов - - Служба поддержки - - Не нашли ответ? - -**📄 Страница:** [/faq](https://dexarmarket.ru/faq) - ---- - -### ✅ Контакты -- ✅ Email: **Info@dexarmarket.ru** -- ✅ Телефон RUS: **+7 (926) 459-31-57** -- ✅ Телефон ARM: **+374 94 86 18 16** -- ✅ Часы работы офиса: **10:00-19:00 (МСК)** -- ✅ Техподдержка: **24/7** - -**📄 Страница:** [/contacts](https://dexarmarket.ru/contacts) - ---- - -## 📊 ИТОГОВАЯ СТАТИСТИКА - -| Требование | Статус | -|------------|--------| -| **Реквизиты организации** | ✅ Заполнены полностью | -| **Правила оплаты (рус)** | ✅ Подробная страница | -| **Политика возврата (рус)** | ✅ С законодательством РФ | -| **Публичная оферта (рус)** | ✅ Модель маркетплейса | -| **Логотип МИР** | ✅ Размещен (футер + оплата) | -| **Чекбокс согласия** | ✅ С 4 ссылками | -| **Безопасность (PCI DSS)** | ✅ Описано | -| **3D-Secure** | ✅ Описано | -| **Требования ЦБ РФ** | ✅ Соответствие Положению №382-П | -| **Электронный чек (54-ФЗ)** | ✅ Упомянуто | -| **Персональные данные (152-ФЗ)** | ✅ Политика конфиденциальности | - ---- - -## 🎯 ГОТОВНОСТЬ К ПОДКЛЮЧЕНИЮ ЭКВАЙРИНГА - -### **100% готовности!** 🚀 - -Все требования Райффайзенбанка выполнены: -- ✅ Юридические документы -- ✅ Информационные разделы -- ✅ Логотипы платежных систем -- ✅ Чекбокс согласия с условиями -- ✅ Русский язык на всех страницах -- ✅ Соответствие законодательству РФ - ---- - -## 📞 СЛЕДУЮЩИЕ ШАГИ - -1. ✅ **Показать сайт представителю Райффайзенбанка** -2. ⏳ Настроить процесс отправки платежных ссылок (если будет использоваться) -3. ⏳ Подключить платежный шлюз -4. ⏳ Провести тестовые платежи -5. ⏳ Запуск приема платежей - ---- - -## 📄 ДОКУМЕНТЫ ДЛЯ БАНКА - -Если потребуются дополнительные документы: -- Публичная оферта (PDF-версия): экспорт из `/public-offer` -- Политика возврата (PDF-версия): экспорт из `/return-policy` -- Реквизиты (PDF-версия): экспорт из `/company-details` -- Скриншоты чекбокса и логотипов: готовы - ---- - -## ✨ ПРЕИМУЩЕСТВА РЕАЛИЗАЦИИ - -1. **Юридическая защита:** Все документы составлены с учетом законодательства РФ -2. **Модель маркетплейса:** Правильное разграничение ответственности -3. **Защита от chargeback:** Чекбокс + документы = доказательная база -4. **Профессиональный вид:** Логотипы платежных систем, структурированные страницы -5. **Удобство для покупателей:** FAQ, подробные условия, контакты - ---- - -**Дата подготовки:** 9 января 2026 -**Подготовил:** GitHub Copilot (Claude Sonnet 4.5) -**Для:** Dexarmarket.ru - ---- - -✅ **САЙТ ПОЛНОСТЬЮ ГОТОВ К ПОДКЛЮЧЕНИЮ ЭКВАЙРИНГА РАЙФФАЙЗЕНБАНКА** diff --git a/docs/ГОТОВО_NOVO.md b/docs/ГОТОВО_NOVO.md deleted file mode 100644 index 0cf6e5c..0000000 --- a/docs/ГОТОВО_NOVO.md +++ /dev/null @@ -1,197 +0,0 @@ -# ✅ ГОТОВО: Мультибрендовая платформа настроена! - -## 🎯 Что реализовано: - -### 1. **Два бренда в одном проекте** -- ✅ **Dexar Market** - фиолетовый (#667eea, #764ba2) -- ✅ **novo Market** - зеленый (#10b981, #14b8a6) 🟢 - -### 2. **Система Environment** -Создано 4 файла конфигурации: -``` -src/environments/ -├── environment.ts (Dexar Dev) -├── environment.production.ts (Dexar Prod) -├── environment.novo.ts (novo Dev) -└── environment.novo.production.ts (novo Prod) -``` - -Каждый содержит: -- Название бренда -- Цветовую тему -- API URL -- Email контакты -- Домен -- Телефоны -- Telegram - -### 3. **Система тем (SCSS)** -``` -src/styles/themes/ -├── dexar.theme.scss (фиолетовая тема) -└── novo.theme.scss (зеленая тема) 🟢 -``` - -### 4. **Обновленные компоненты** -Все компоненты используют переменные из environment: -- Header - динамическое название -- Footer - динамическое название и email -- Home - динамическое название в hero -- ApiService - динамический API URL - -### 5. **Обновленные стили** -Все стили используют CSS переменные: -- `--primary-color` -- `--secondary-color` -- `--gradient-primary` -- `--gradient-hero` -- И другие... - -### 6. **Angular.json конфигурации** -4 конфигурации сборки: -- `development` → Dexar Dev -- `production` → Dexar Prod -- `novo` → novo Dev -- `novo-production` → novo Prod - -### 7. **NPM Scripts** -Удобные команды в package.json: -```json -{ - "start:dexar": "ng serve --configuration=development", - "start:novo": "ng serve --configuration=novo --port 4201", - "build:dexar": "ng build --configuration=production", - "build:novo": "ng build --configuration=novo-production" -} -``` - -## 🚀 Как использовать: - -### Запуск разработки: -```bash -# Dexar Market (фиолетовый) -npm start -# http://localhost:4200 - -# novo Market (зеленый) -npm run start:novo -# http://localhost:4201 -``` - -### Сборка продакшн: -```bash -# Dexar Market -npm run build:dexar -# → dist/dexarmarket/ - -# novo Market -npm run build:novo -# → dist/novomarket/ -``` - -## 📋 Что автоматически меняется при переключении: - -| Параметр | Где меняется | -|----------|--------------| -| Название бренда | Header, Footer, Home, Все документы | -| Цветовая схема | Все компоненты через CSS переменные | -| API URL | ApiService автоматически | -| Email контакты | Footer, все формы | -| Домен | Meta теги, links | -| Logo | Header (когда добавите файл) | - -## ⏳ Что нужно сделать для запуска novo: - -### Обязательно (перед показом клиентам): -1. Добавить логотип: `public/assets/images/novo-logo.svg` -2. Обновить телефоны в `environment.novo.ts` -3. Проверить все страницы на localhost:4201 - -### Важно (перед деплоем): -4. Обновить реквизиты компании (когда будут) -5. Настроить API endpoint для novo -6. Обновить meta теги для SEO -7. Создать nginx конфиг для novomarket.ru -8. Настроить SSL сертификаты - -### Желательно: -9. Добавить favicon для novo -10. Обновить og:image для соцсетей -11. Настроить Google Analytics (если нужен) -12. Проверить все правовые документы - -## 📚 Созданная документация: - -1. **MULTI_BRAND.md** - Полное руководство по мультибрендингу -2. **novo_TODO.md** - Список задач для novo Market -3. **SETUP_COMPLETE.md** - Подробное описание настройки -4. **QUICK_START_novo.md** - Быстрый старт novo -5. **Этот файл** - Краткое резюме - -## 🎨 Сравнение брендов: - -### Dexar Market: -``` -Цвета: 🟣 Фиолетовый (#667eea) -Название: Dexar Market -Email: info@dexarmarket.ru -Домен: dexarmarket.ru -Статус: ✅ Работает в продакшене -``` - -### novo Market: -``` -Цвета: 🟢 Зеленый (#10b981) -Название: novo Market -Email: info@novomarket.ru -Домен: novomarket.ru (настроить) -Статус: ✅ Готов к разработке -``` - -## 🔧 Техническая реализация: - -### Преимущества: -- ✅ Один код для всех брендов -- ✅ Легко добавить 3-й, 4-й бренд -- ✅ Автоматическое переключение всего -- ✅ Раздельные сборки -- ✅ Нет дублирования кода -- ✅ Легко поддерживать - -### Как это работает: -1. Angular.json указывает какой environment использовать -2. Environment файл загружается при старте приложения -3. Компоненты читают данные из environment -4. Соответствующая тема (SCSS) подключается -5. CSS переменные применяются ко всем стилям - -## 🎉 Результат: - -Вы можете ПРЯМО СЕЙЧАС: - -1. Запустить novo Market: -```bash -npm run start:novo -``` - -2. Открыть http://localhost:4201 - -3. Увидеть: - - ✅ Название "novo Market" - - ✅ Зеленые цвета везде - - ✅ Зеленый hero блок - - ✅ Зеленые кнопки и ховеры - - ✅ Footer с "novo Market" - -## 📞 Следующий шаг: - -**Запустите прямо сейчас:** -```bash -npm run start:novo -``` - -И посмотрите результат на http://localhost:4201 ! 🚀 - ---- - -*Вопросы? Смотрите MULTI_BRAND.md и novo_TODO.md* diff --git a/docs/ДИЗАЙН_ГОТОВ.md b/docs/ДИЗАЙН_ГОТОВ.md deleted file mode 100644 index 102c372..0000000 --- a/docs/ДИЗАЙН_ГОТОВ.md +++ /dev/null @@ -1,87 +0,0 @@ -# ✅ ГОТОВО: Документы и дизайн обновлены! - -## Что сделано: - -### 1. ✅ Все компоненты имеют environment -- TypeScript файлы обновлены -- Переменные `brandName`, `contactEmail` и другие доступны - -### 2. ✅ Создан красивый единый дизайн -- Файл `src/styles/shared-legal.scss` -- Цвета автоматически под тему бренда -- Анимации появления -- Градиенты на заголовках -- Hover эффекты на ссылках -- Адаптив для мобильных - -### 3. ✅ Все SCSS используют общий файл -- 8 компонентов обновлены -- Один файл стилей = легкая поддержка - -### 4. ✅ HTML обновлен (частично) -- About page - обновлена -- Остальные страницы готовы к обновлению - -## 🎨 Что вы увидите: - -### В Dexar Market (фиолетовый): -- 🟣 Заголовки с фиолетовым подчеркиванием -- 🟣 Секции с фиолетовой границей слева -- 🟣 Ссылки с фиолетовыми эффектами -- 🟣 Плавные анимации - -### В novo Market (зеленый): -- 🟢 Заголовки с зеленым подчеркиванием -- 🟢 Секции с зеленой границей слева -- 🟢 Ссылки с зелеными эффектами -- 🟢 Плавные анимации - -## 🚀 Проверка: - -```bash -# Запустите novo Market -npm run start:novo -``` - -Откройте любую страницу: -- http://localhost:4201/about -- http://localhost:4201/privacy-policy -- http://localhost:4201/contacts - -Вы увидите: -- ✅ Зеленый дизайн (для novo) -- ✅ Красивые градиенты -- ✅ Анимацию при загрузке -- ✅ Hover эффекты -- ✅ Название "novo Market" (где обновлено) - -## 📝 Что осталось (по желанию): - -Для полной замены названий во всех HTML файлах, замените: -- `DEXARMARKET` → `{{ brandName }}` -- `DexarMarket` → `{{ brandName }}` -- `info@dexarmarket.ru` → `{{ contactEmail }}` -- `www.dexarmarket.ru` → `{{ domain }}` - -Файлы для обновления: -- `public-offer.component.html` -- `privacy-policy.component.html` -- `return-policy.component.html` -- `payment-terms.component.html` -- `company-details.component.html` -- `contacts.component.html` -- `guarantee.component.html` -- `delivery.component.html` -- `faq.component.html` - -## ✨ Главное: - -**Дизайн уже работает для обоих брендов!** -Все CSS переменные настроены, стили применяются автоматически. - -**Перезапустите сервер и проверьте:** -```bash -npm run start:novo -``` - -🎉 Наслаждайтесь красивым зеленым дизайном novo Market! diff --git a/docs/ДОКУМЕНТЫ_ОБНОВЛЕНЫ.md b/docs/ДОКУМЕНТЫ_ОБНОВЛЕНЫ.md deleted file mode 100644 index 22735e0..0000000 --- a/docs/ДОКУМЕНТЫ_ОБНОВЛЕНЫ.md +++ /dev/null @@ -1,104 +0,0 @@ -# ✅ Обновлено: Все документы с динамическим брендингом - -## Что сделано: - -### 1. **Все компоненты получили environment переменные** - -Обновлены TypeScript файлы: -- ✅ `company-details.component.ts` -- ✅ `payment-terms.component.ts` -- ✅ `privacy-policy.component.ts` -- ✅ `return-policy.component.ts` -- ✅ `public-offer.component.ts` -- ✅ `about.component.ts` -- ✅ `contacts.component.ts` -- ✅ `delivery.component.ts` -- ✅ `guarantee.component.ts` -- ✅ `faq.component.ts` (уже был обновлен ранее) - -Теперь в каждом есть: -```typescript -brandName = environment.brandName; -brandFullName = environment.brandFullName; -contactEmail = environment.contactEmail; -// и другие переменные -``` - -### 2. **Создан общий файл стилей** - -✅ `src/styles/shared-legal.scss` - единый файл стилей для всех документов с: -- CSS переменными для цветов бренда -- Красивыми анимациями -- Стильным оформлением заголовков с градиентами -- Hover эффектами -- Адаптивностью для мобильных -- Цвета автоматически меняются под тему! - -### 3. **Все SCSS файлы используют общий стиль** - -Заменены на простой импорт: -```scss -@import '../../../../styles/shared-legal.scss'; -``` - -## 🎨 Что изменилось в дизайне: - -### Dexar Market (фиолетовый): -- Заголовки H1 с фиолетовым подчеркиванием -- H2 с фиолетовым акцентом слева -- Секции с фиолетовой границей -- Ссылки с фиолетовыми hover эффектами - -### novo Market (зеленый): -- Заголовки H1 с зеленым подчеркиванием -- H2 с зеленым акцентом слева -- Секции с зеленой границей -- Ссылки с зелеными hover эффектами - -## 📝 Теперь в шаблонах можно использовать: - -```html -

{{ brandName }}

-

Контактный email: {{ contactEmail }}

-

Поддержка: {{ supportEmail }}

-

Телефон РФ: {{ phones.russia }}

-

Телефон Армения: {{ phones.armenia }}

-

Домен: {{ domain }}

-``` - -## 🎯 Следующий шаг: - -Обновите HTML шаблоны документов, заменив жестко заданные названия на переменные: - -### Пример: -**Было:** -```html -

Публичная оферта Dexarmarket

-``` - -**Стало:** -```html -

Публичная оферта {{ brandName }}

-``` - -## ✨ Что вы получили: - -1. ✅ Динамическое название бренда везде -2. ✅ Автоматическое переключение цветов под тему -3. ✅ Единый стиль для всех документов -4. ✅ Легкая поддержка (один файл стилей) -5. ✅ Красивые анимации и эффекты -6. ✅ Адаптивный дизайн - -## 🚀 Проверка: - -Запустите: -```bash -npm run start:novo -``` - -Откройте любую страницу документов и увидите: -- 🟢 Зеленые акценты и подчеркивания -- 🟢 Плавные анимации появления -- 🟢 Красивые hover эффекты -- 🟢 Название "novo Market" в заголовках diff --git a/docs/ИСПРАВЛЕНО.md b/docs/ИСПРАВЛЕНО.md deleted file mode 100644 index 4275852..0000000 --- a/docs/ИСПРАВЛЕНО.md +++ /dev/null @@ -1,73 +0,0 @@ -# ✅ Исправлено - -## Проблемы: -1. ❌ У Dexar пропали цвета -2. ❌ На novo круг загрузки в цветах Dexar - -## Что сделано: - -### 1. API URL для novo временно на Dexar -- ✅ `environment.novo.ts` → `https://api.dexarmarket.ru:445` -- ✅ `environment.novo.production.ts` → `https://api.dexarmarket.ru:445` - -### 2. Добавлены дефолтные CSS переменные в `styles.scss` -Теперь в начале файла есть дефолтные значения: -```scss -:root { - --primary-color: #667eea; - --primary-hover: #5568d3; - --secondary-color: #764ba2; - // ... и все остальные -} -``` - -### 3. Обновлены оставшиеся стили на CSS переменные -- ✅ Scrollbar → `var(--gradient-primary)` -- ✅ Focus outline → `var(--primary-color)` -- ✅ Body text → `var(--text-primary)` - -## 🔄 Для применения изменений: - -1. Остановите текущий `ng serve` (если запущен) -2. Запустите заново: - -```bash -# Dexar (фиолетовый) -npm start - -# novo (зеленый) -npm run start:novo -``` - -## ✅ Теперь должно работать: - -### Dexar Market: -- ✅ Фиолетовые цвета (#667eea) -- ✅ Фиолетовый spinner загрузки -- ✅ Все компоненты в своих цветах - -### novo Market: -- ✅ Зеленые цвета (#10b981) -- ✅ Зеленый spinner загрузки -- ✅ Все компоненты в своих цветах -- ✅ API запросы идут на dexarmarket.ru - -## 📋 Что происходит: - -1. `styles.scss` загружается первым с дефолтными цветами Dexar -2. Затем загружается тема: - - `dexar.theme.scss` (переопределяет на те же фиолетовые) - - `novo.theme.scss` (переопределяет на зеленые) -3. Все компоненты используют CSS переменные и автоматически получают правильные цвета - -## 🚀 Проверка: - -Откройте в браузере: -- Dexar: http://localhost:4200 (фиолетовый) -- novo: http://localhost:4201 (зеленый) - -Проверьте: -- ✅ Hero блок в правильном цвете -- ✅ Кнопки в правильном цвете -- ✅ Spinner загрузки в правильном цвете -- ✅ Hover эффекты в правильном цвете diff --git a/docs/СХЕМА_РАБОТЫ.md b/docs/СХЕМА_РАБОТЫ.md deleted file mode 100644 index 5cc6dde..0000000 --- a/docs/СХЕМА_РАБОТЫ.md +++ /dev/null @@ -1,166 +0,0 @@ -# 🎯 Визуальная схема: Как работает мультибрендинг - -``` -┌─────────────────────────────────────────────────────────┐ -│ ЗАПУСК ПРИЛОЖЕНИЯ │ -└─────────────────────────────────────────────────────────┘ - │ - ├──────────────┬──────────────┐ - │ │ │ - ▼ ▼ ▼ - ┌──────────────┐ ┌──────────┐ ┌─────────────┐ - │ 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` - -Легко! 🎉 diff --git a/public/assets/changes.txt b/public/assets/changes.txt deleted file mode 100644 index 4b5541d..0000000 --- a/public/assets/changes.txt +++ /dev/null @@ -1,148 +0,0 @@ -Гарантия 🔨 - - 1. Основные положения о гарантии - -Настоящий раздел устанавливает порядок предоставления гарантийных услуг на товары, купленные на маркетплейсе DexarMarket. - -- Обязательства по гарантии исполняет сам Продавец товара, в строгом соответствии с российским законодательством. -- Платформа DexarMarket выступает лишь информационным посредником и не принимает участие в исполнении гарантийных условий. -- Гарантия действует исключительно на заводские дефекты и недостатки, возникшие не по вине покупателя. - - 2. Срок гарантии 🏷 - -Срок гарантии устанавливается Продавцом или производителем товара и публикуется: - -- На страницах товаров нашего сайта. -- В гарантийном талоне, вложенном в упаковку. -- В сопроводительной документации товара. - -Типичные сроки гарантии по категориям товаров: - -- Электроника и бытовая техника: от 12 до 24 месяцев. -- Компьютерная техника и комплектующие: от 12 до 36 месяцев. -- Одежда и обувь: от 30 дней до полугода (зависит от сезонности). -- Мебель: от 12 до 18 месяцев. -- Цифровая продукция: поддержка определяется самим Продавцом. - -Начало срока гарантии отсчитывается с момента передачи товара покупателю. - -Замена товара продлевает гарантийный срок заново с момента выдачи замены. - -Если срок гарантии не обозначен Продавцом, покупатель имеет право предъявлять претензии в течение 2-х лет с момента приобретения товара (согласно ст. 19 Закона РФ «О защите прав потребителей»). - -3. Условия предоставления гарантии 📝 - -Гарантия действительна при выполнении следующих требований: - -- Использование товара строго по инструкции. -- Отсутствие самостоятельной разборки, ремонта или модификации устройства. -- Нет механических повреждений внешнего корпуса и внутренних элементов. -- Сохранены оригинальные пломбы и серийные номера (если предусмотрены). -- Устройство не подвергалось влиянию высоких температур, влажности или химикатов. -- Имеются гарантийный талон и подтверждение покупки (чек, квитанция). - - Документы для обращения по гарантии: - -- Сам товар с полной комплектацией. -- Гарантийный талон (если прилагался). -- Документ, подтверждающий приобретение (чек, кассовый ордер). -- Удостоверение личности владельца товара (например, паспорт). - -4. Гарантийный ремонт и замена 🛠 - - Права покупателя при выявлении брака: - -Если недостаток найден в пределах гарантийного периода, вы имеете право: - -- Бесплатно устранить неисправность. -- Получить аналогичный товар взамен испорченного. -- Потребовать замену на другой товар с перерасчетом стоимости. -- Снизить цену товара пропорционально дефекту. -- Вернуть полную сумму за товар. - - Сроки ремонта: - -Ремонт выполняется быстро, но максимальный срок составляет 45 дней (статья 20 Закона РФ «О защите прав потребителей»). Если срок нарушен, вы можете попросить заменить товар или вернуть деньги. - - Временная замена товара: - -Если срок ремонта превышает неделю, продавец обязан предоставить временный заменитель для технически сложных товаров. - - Доставка для ремонта: - -Расходы на транспортировку товара в сервисный центр и обратно берет на себя продавец или специализированный сервисный центр. - -5. Случаи, не подлежащие гарантии 🔍 - -Гарантия не работает, если выявлены следующие обстоятельства: - -- Механическое повреждение (удары, падение, трещины, царапины); -- Нарушения правил эксплуатации (неправильное подключение, превышение нагрузки, нестандартное применение); -- Повреждения из-за внешних воздействий (жидкость, грязь, высокие температуры, сырость); -- Самостоятельный ремонт (разборка, модернизация, замена комплектующих); -- Действие форс-мажорных обстоятельств (пожар, затопление, кража, погодные катаклизмы); -- Естественное старение материалов (потеря цвета, блеск, незначительный износ); -- Незаконное нарушение заводских пломб или уничтожение серийных номеров. - -Также не относятся к гарантийному случаю: - -- Косметические изъяны, не влияющие на работу (поверхностные царапинки, небольшие пятна); -- Изменения внешнего вида вследствие обычной эксплуатации; -- Программные неполадки, вызванные установками постороннего программного обеспечения; -- Проблемы совместимости с устройствами или ПО других производителей. - -Отдельно оговорено ограничение гарантии на расходники (батарейки, лампочки, фильтры), указанные в описании товара - -6. Процедура подачи заявки на гарантийное обслуживание 🗒 - -Чтобы воспользоваться гарантийным сервисом, выполните следующие шаги: - -1. Связаться с продавцом через контактные данные, указанные в вашем заказе. - -2. Объяснить суть проблемы и приложить фотоматериалы или видеозапись (если необходимо). - -3. Получить от продавца инструкцию по обращению в сервисный центр или адрес, куда отправить товар. - -4. Доставить товар в сервис с документами, подтверждающими покупку (гарантийный талон, чек). - -5. Получить акт приёма товара с указанием срока ремонтных работ. - -6. Забрать восстановленный товар после оповещения о завершении ремонта. - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ - Правила отправки товара почтой или курьером: - -- Надежно упакуйте устройство, предотвращая возможные повреждения при перевозке. -- Положите копии документов о покупке и подробное описание проблемы внутрь упаковки. -- Оформите почтовое отправление с оценочной стоимостью. -- Обязательно сохраняйте номер трека для контроля местонахождения груза. - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ -Если возникли трудности, покупатели также могут обращаться в нашу службу поддержки через email: info@dexarmarket.ru. - -7. Дополнительные права покупателя 🎯 - -Если товар имеет серьёзный недостаток, вы вправе: - -- Требовать полного возврата денег. -- Просить замену на товар другой модели с соответствующим перерасчётом стоимости. - -Серьёзный недостаток — это ситуация, когда: - -- Невозможно исправить поломку. -- Устранение поломки требует больших затрат или долгого времени. -- Недостаток появляется снова после ремонта. -- Одна и та же проблема возникает многократно. - -Кроме того, вы можете взыскать убытки, понесённые из-за продажи некачественного товара. - -⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ - 8. Контактная информация 📞 - -По любым вопросам гарантийного обслуживания обращайтесь сначала к продавцу (см. страницу товара или ваше уведомление о доставке). - -Если возникла необходимость решения спора: - -Отправьте письмо на email Маркетплейса: info@dexarmarket.ru с темой: «Гарантийный вопрос — Заказ №[номер заказа]». - -В случае отказа продавца принять претензию, вы имеете право инициировать независимую экспертизу качества товара и подать иск в судебные органы. \ No newline at end of file diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 91e34f8..2d3417d 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,6 +1,8 @@ import { Routes } from '@angular/router'; +import { brandInfoRoutes, brandLegalRoutes } from './brands/brand-routes'; -export const routes: Routes = [ +// Core routes (same across all brands) +const coreRoutes: Routes = [ { path: '', loadComponent: () => import('./pages/home/home.component').then(m => m.HomeComponent) @@ -24,49 +26,16 @@ export const routes: Routes = [ { path: 'cart', loadComponent: () => import('./pages/cart/cart.component').then(m => m.CartComponent) - }, - { - path: 'company-details', - loadComponent: () => import('./pages/legal/company-details/company-details.component').then(m => m.CompanyDetailsComponent) - }, - { - path: 'payment-terms', - loadComponent: () => import('./pages/legal/payment-terms/payment-terms.component').then(m => m.PaymentTermsComponent) - }, - { - path: 'return-policy', - loadComponent: () => import('./pages/legal/return-policy/return-policy.component').then(m => m.ReturnPolicyComponent) - }, - { - path: 'public-offer', - loadComponent: () => import('./pages/legal/public-offer/public-offer.component').then(m => m.PublicOfferComponent) - }, - { - path: 'privacy-policy', - loadComponent: () => import('./pages/legal/privacy-policy/privacy-policy.component').then(m => m.PrivacyPolicyComponent) - }, - { - path: 'about', - loadComponent: () => import('./pages/info/about/about.component').then(m => m.AboutComponent) - }, - { - path: 'contacts', - loadComponent: () => import('./pages/info/contacts/contacts.component').then(m => m.ContactsComponent) - }, - { - path: 'faq', - loadComponent: () => import('./pages/info/faq/faq.component').then(m => m.FaqComponent) - }, - { - path: 'delivery', - loadComponent: () => import('./pages/info/delivery/delivery.component').then(m => m.DeliveryComponent) - }, - { - path: 'guarantee', - loadComponent: () => import('./pages/info/guarantee/guarantee.component').then(m => m.GuaranteeComponent) - }, + } +]; + +// Combine core routes with brand-specific routes +export const routes: Routes = [ + ...coreRoutes, + ...brandInfoRoutes, + ...brandLegalRoutes, { path: '**', redirectTo: '' } -]; +]; \ No newline at end of file diff --git a/src/app/app.spec.ts b/src/app/app.spec.ts index 6faa583..b9bcd88 100644 --- a/src/app/app.spec.ts +++ b/src/app/app.spec.ts @@ -1,10 +1,12 @@ import { TestBed } from '@angular/core/testing'; import { App } from './app'; +import { provideRouter } from '@angular/router'; describe('App', () => { beforeEach(async () => { await TestBed.configureTestingModule({ imports: [App], + providers: [provideRouter([])] }).compileComponents(); }); @@ -13,11 +15,4 @@ describe('App', () => { const app = fixture.componentInstance; expect(app).toBeTruthy(); }); - - it('should render title', () => { - const fixture = TestBed.createComponent(App); - fixture.detectChanges(); - const compiled = fixture.nativeElement as HTMLElement; - expect(compiled.querySelector('h1')?.textContent).toContain('Hello, Dexarmarket'); - }); }); diff --git a/src/app/brands/brand-routes.novo.ts b/src/app/brands/brand-routes.novo.ts new file mode 100644 index 0000000..afb37bc --- /dev/null +++ b/src/app/brands/brand-routes.novo.ts @@ -0,0 +1,49 @@ +// Novo brand routes +// Loaded via angular.json fileReplacements when building for novo +import { Routes } from '@angular/router'; + +export const brandInfoRoutes: Routes = [ + { + path: 'about', + loadComponent: () => import('./novo/pages/info/about/about.component').then(m => m.AboutNovoComponent) + }, + { + path: 'contacts', + loadComponent: () => import('./novo/pages/info/contacts/contacts.component').then(m => m.ContactsNovoComponent) + }, + { + path: 'faq', + loadComponent: () => import('./novo/pages/info/faq/faq.component').then(m => m.FaqNovoComponent) + }, + { + path: 'delivery', + loadComponent: () => import('./novo/pages/info/delivery/delivery.component').then(m => m.DeliveryNovoComponent) + }, + { + path: 'guarantee', + loadComponent: () => import('./novo/pages/info/guarantee/guarantee.component').then(m => m.GuaranteeNovoComponent) + } +]; + +export const brandLegalRoutes: Routes = [ + { + path: 'company-details', + loadComponent: () => import('./novo/pages/legal/company-details/company-details.component').then(m => m.CompanyDetailsNovoComponent) + }, + { + path: 'payment-terms', + loadComponent: () => import('./novo/pages/legal/payment-terms/payment-terms.component').then(m => m.PaymentTermsNovoComponent) + }, + { + path: 'return-policy', + loadComponent: () => import('./novo/pages/legal/return-policy/return-policy.component').then(m => m.ReturnPolicyNovoComponent) + }, + { + path: 'public-offer', + loadComponent: () => import('./novo/pages/legal/public-offer/public-offer.component').then(m => m.PublicOfferNovoComponent) + }, + { + path: 'privacy-policy', + loadComponent: () => import('./novo/pages/legal/privacy-policy/privacy-policy.component').then(m => m.PrivacyPolicyNovoComponent) + } +]; diff --git a/src/app/brands/brand-routes.ts b/src/app/brands/brand-routes.ts new file mode 100644 index 0000000..09382cb --- /dev/null +++ b/src/app/brands/brand-routes.ts @@ -0,0 +1,49 @@ +// Default brand routes (Dexar) +// This file is swapped via angular.json fileReplacements for each brand +import { Routes } from '@angular/router'; + +export const brandInfoRoutes: Routes = [ + { + path: 'about', + loadComponent: () => import('../pages/info/about/about.component').then(m => m.AboutComponent) + }, + { + path: 'contacts', + loadComponent: () => import('../pages/info/contacts/contacts.component').then(m => m.ContactsComponent) + }, + { + path: 'faq', + loadComponent: () => import('../pages/info/faq/faq.component').then(m => m.FaqComponent) + }, + { + path: 'delivery', + loadComponent: () => import('../pages/info/delivery/delivery.component').then(m => m.DeliveryComponent) + }, + { + path: 'guarantee', + loadComponent: () => import('../pages/info/guarantee/guarantee.component').then(m => m.GuaranteeComponent) + } +]; + +export const brandLegalRoutes: Routes = [ + { + path: 'company-details', + loadComponent: () => import('../pages/legal/company-details/company-details.component').then(m => m.CompanyDetailsComponent) + }, + { + path: 'payment-terms', + loadComponent: () => import('../pages/legal/payment-terms/payment-terms.component').then(m => m.PaymentTermsComponent) + }, + { + path: 'return-policy', + loadComponent: () => import('../pages/legal/return-policy/return-policy.component').then(m => m.ReturnPolicyComponent) + }, + { + path: 'public-offer', + loadComponent: () => import('../pages/legal/public-offer/public-offer.component').then(m => m.PublicOfferComponent) + }, + { + path: 'privacy-policy', + loadComponent: () => import('../pages/legal/privacy-policy/privacy-policy.component').then(m => m.PrivacyPolicyComponent) + } +]; diff --git a/src/app/brands/dexar/pages/info/about/about.component.html b/src/app/brands/dexar/pages/info/about/about.component.html new file mode 100644 index 0000000..5a7d436 --- /dev/null +++ b/src/app/brands/dexar/pages/info/about/about.component.html @@ -0,0 +1,74 @@ + diff --git a/src/app/brands/dexar/pages/info/contacts/contacts.component.html b/src/app/brands/dexar/pages/info/contacts/contacts.component.html new file mode 100644 index 0000000..4933fc4 --- /dev/null +++ b/src/app/brands/dexar/pages/info/contacts/contacts.component.html @@ -0,0 +1,46 @@ + diff --git a/src/app/brands/dexar/pages/info/delivery/delivery.component.html b/src/app/brands/dexar/pages/info/delivery/delivery.component.html new file mode 100644 index 0000000..4da78d5 --- /dev/null +++ b/src/app/brands/dexar/pages/info/delivery/delivery.component.html @@ -0,0 +1,60 @@ + diff --git a/src/app/brands/dexar/pages/info/faq/faq.component.html b/src/app/brands/dexar/pages/info/faq/faq.component.html new file mode 100644 index 0000000..9dac502 --- /dev/null +++ b/src/app/brands/dexar/pages/info/faq/faq.component.html @@ -0,0 +1,244 @@ + diff --git a/src/app/brands/dexar/pages/info/guarantee/guarantee.component.html b/src/app/brands/dexar/pages/info/guarantee/guarantee.component.html new file mode 100644 index 0000000..36c1cc0 --- /dev/null +++ b/src/app/brands/dexar/pages/info/guarantee/guarantee.component.html @@ -0,0 +1,158 @@ + diff --git a/src/app/brands/dexar/pages/legal/company-details/company-details.component.html b/src/app/brands/dexar/pages/legal/company-details/company-details.component.html new file mode 100644 index 0000000..7ae6a29 --- /dev/null +++ b/src/app/brands/dexar/pages/legal/company-details/company-details.component.html @@ -0,0 +1,102 @@ + diff --git a/src/app/brands/dexar/pages/legal/payment-terms/payment-terms.component.html b/src/app/brands/dexar/pages/legal/payment-terms/payment-terms.component.html new file mode 100644 index 0000000..a65e258 --- /dev/null +++ b/src/app/brands/dexar/pages/legal/payment-terms/payment-terms.component.html @@ -0,0 +1,119 @@ + diff --git a/src/app/brands/dexar/pages/legal/privacy-policy/privacy-policy.component.html b/src/app/brands/dexar/pages/legal/privacy-policy/privacy-policy.component.html new file mode 100644 index 0000000..cd47b3f --- /dev/null +++ b/src/app/brands/dexar/pages/legal/privacy-policy/privacy-policy.component.html @@ -0,0 +1,258 @@ + diff --git a/src/app/brands/dexar/pages/legal/public-offer/public-offer.component.html b/src/app/brands/dexar/pages/legal/public-offer/public-offer.component.html new file mode 100644 index 0000000..a5a61ee --- /dev/null +++ b/src/app/brands/dexar/pages/legal/public-offer/public-offer.component.html @@ -0,0 +1,467 @@ + diff --git a/src/app/brands/dexar/pages/legal/return-policy/return-policy.component.html b/src/app/brands/dexar/pages/legal/return-policy/return-policy.component.html new file mode 100644 index 0000000..7863b7c --- /dev/null +++ b/src/app/brands/dexar/pages/legal/return-policy/return-policy.component.html @@ -0,0 +1,134 @@ + diff --git a/src/app/brands/novo/pages/info/about/about.component.html b/src/app/brands/novo/pages/info/about/about.component.html new file mode 100644 index 0000000..ea57919 --- /dev/null +++ b/src/app/brands/novo/pages/info/about/about.component.html @@ -0,0 +1,99 @@ + diff --git a/src/app/brands/novo/pages/info/about/about.component.ts b/src/app/brands/novo/pages/info/about/about.component.ts new file mode 100644 index 0000000..fc1633f --- /dev/null +++ b/src/app/brands/novo/pages/info/about/about.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-about-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './about.component.html', + styleUrls: ['../../../../../pages/info/about/about.component.scss'] +}) +export class AboutNovoComponent {} diff --git a/src/app/brands/novo/pages/info/contacts/contacts.component.html b/src/app/brands/novo/pages/info/contacts/contacts.component.html new file mode 100644 index 0000000..a6f6c98 --- /dev/null +++ b/src/app/brands/novo/pages/info/contacts/contacts.component.html @@ -0,0 +1,49 @@ + diff --git a/src/app/brands/novo/pages/info/contacts/contacts.component.ts b/src/app/brands/novo/pages/info/contacts/contacts.component.ts new file mode 100644 index 0000000..91c572e --- /dev/null +++ b/src/app/brands/novo/pages/info/contacts/contacts.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-contacts-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './contacts.component.html', + styleUrls: ['../../../../../pages/info/contacts/contacts.component.scss'] +}) +export class ContactsNovoComponent {} diff --git a/src/app/brands/novo/pages/info/delivery/delivery.component.html b/src/app/brands/novo/pages/info/delivery/delivery.component.html new file mode 100644 index 0000000..4b86702 --- /dev/null +++ b/src/app/brands/novo/pages/info/delivery/delivery.component.html @@ -0,0 +1,78 @@ + diff --git a/src/app/brands/novo/pages/info/delivery/delivery.component.ts b/src/app/brands/novo/pages/info/delivery/delivery.component.ts new file mode 100644 index 0000000..c23b734 --- /dev/null +++ b/src/app/brands/novo/pages/info/delivery/delivery.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-delivery-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './delivery.component.html', + styleUrls: ['../../../../../pages/info/delivery/delivery.component.scss'] +}) +export class DeliveryNovoComponent {} diff --git a/src/app/brands/novo/pages/info/faq/faq.component.html b/src/app/brands/novo/pages/info/faq/faq.component.html new file mode 100644 index 0000000..e8d3588 --- /dev/null +++ b/src/app/brands/novo/pages/info/faq/faq.component.html @@ -0,0 +1,93 @@ + diff --git a/src/app/brands/novo/pages/info/faq/faq.component.ts b/src/app/brands/novo/pages/info/faq/faq.component.ts new file mode 100644 index 0000000..849e2c5 --- /dev/null +++ b/src/app/brands/novo/pages/info/faq/faq.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-faq-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './faq.component.html', + styleUrls: ['../../../../../pages/info/faq/faq.component.scss'] +}) +export class FaqNovoComponent {} diff --git a/src/app/brands/novo/pages/info/guarantee/guarantee.component.html b/src/app/brands/novo/pages/info/guarantee/guarantee.component.html new file mode 100644 index 0000000..8649d45 --- /dev/null +++ b/src/app/brands/novo/pages/info/guarantee/guarantee.component.html @@ -0,0 +1,92 @@ + diff --git a/src/app/brands/novo/pages/info/guarantee/guarantee.component.ts b/src/app/brands/novo/pages/info/guarantee/guarantee.component.ts new file mode 100644 index 0000000..891e764 --- /dev/null +++ b/src/app/brands/novo/pages/info/guarantee/guarantee.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-guarantee-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './guarantee.component.html', + styleUrls: ['../../../../../pages/info/guarantee/guarantee.component.scss'] +}) +export class GuaranteeNovoComponent {} diff --git a/src/app/brands/novo/pages/legal/company-details/company-details.component.html b/src/app/brands/novo/pages/legal/company-details/company-details.component.html new file mode 100644 index 0000000..8613e72 --- /dev/null +++ b/src/app/brands/novo/pages/legal/company-details/company-details.component.html @@ -0,0 +1,113 @@ + diff --git a/src/app/brands/novo/pages/legal/company-details/company-details.component.ts b/src/app/brands/novo/pages/legal/company-details/company-details.component.ts new file mode 100644 index 0000000..b93417c --- /dev/null +++ b/src/app/brands/novo/pages/legal/company-details/company-details.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-company-details-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './company-details.component.html', + styleUrls: ['../../../../../pages/legal/company-details/company-details.component.scss'] +}) +export class CompanyDetailsNovoComponent {} diff --git a/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.html b/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.html new file mode 100644 index 0000000..f8b68eb --- /dev/null +++ b/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.html @@ -0,0 +1,162 @@ + diff --git a/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.ts b/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.ts new file mode 100644 index 0000000..b6194ca --- /dev/null +++ b/src/app/brands/novo/pages/legal/payment-terms/payment-terms.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-payment-terms-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './payment-terms.component.html', + styleUrls: ['../../../../../pages/legal/payment-terms/payment-terms.component.scss'] +}) +export class PaymentTermsNovoComponent {} diff --git a/src/app/brands/novo/pages/legal/privacy-policy/privacy-policy.component.html b/src/app/brands/novo/pages/legal/privacy-policy/privacy-policy.component.html new file mode 100644 index 0000000..c94d62a --- /dev/null +++ b/src/app/brands/novo/pages/legal/privacy-policy/privacy-policy.component.html @@ -0,0 +1,277 @@ + diff --git a/src/app/brands/novo/pages/legal/privacy-policy/privacy-policy.component.ts b/src/app/brands/novo/pages/legal/privacy-policy/privacy-policy.component.ts new file mode 100644 index 0000000..b1e74b8 --- /dev/null +++ b/src/app/brands/novo/pages/legal/privacy-policy/privacy-policy.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-privacy-policy-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './privacy-policy.component.html', + styleUrls: ['../../../../../pages/legal/privacy-policy/privacy-policy.component.scss'] +}) +export class PrivacyPolicyNovoComponent {} diff --git a/src/app/brands/novo/pages/legal/public-offer/public-offer.component.html b/src/app/brands/novo/pages/legal/public-offer/public-offer.component.html new file mode 100644 index 0000000..99e2721 --- /dev/null +++ b/src/app/brands/novo/pages/legal/public-offer/public-offer.component.html @@ -0,0 +1,267 @@ + diff --git a/src/app/brands/novo/pages/legal/public-offer/public-offer.component.ts b/src/app/brands/novo/pages/legal/public-offer/public-offer.component.ts new file mode 100644 index 0000000..2af0725 --- /dev/null +++ b/src/app/brands/novo/pages/legal/public-offer/public-offer.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-public-offer-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './public-offer.component.html', + styleUrls: ['../../../../../pages/legal/public-offer/public-offer.component.scss'] +}) +export class PublicOfferNovoComponent {} diff --git a/src/app/brands/novo/pages/legal/return-policy/return-policy.component.html b/src/app/brands/novo/pages/legal/return-policy/return-policy.component.html new file mode 100644 index 0000000..3b809ed --- /dev/null +++ b/src/app/brands/novo/pages/legal/return-policy/return-policy.component.html @@ -0,0 +1,175 @@ + diff --git a/src/app/brands/novo/pages/legal/return-policy/return-policy.component.ts b/src/app/brands/novo/pages/legal/return-policy/return-policy.component.ts new file mode 100644 index 0000000..5680bbe --- /dev/null +++ b/src/app/brands/novo/pages/legal/return-policy/return-policy.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-return-policy-novo', + standalone: true, + imports: [CommonModule], + templateUrl: './return-policy.component.html', + styleUrls: ['../../../../../pages/legal/return-policy/return-policy.component.scss'] +}) +export class ReturnPolicyNovoComponent {} diff --git a/src/app/interceptors/cache.interceptor.ts b/src/app/interceptors/cache.interceptor.ts index a1ee780..91814b7 100644 --- a/src/app/interceptors/cache.interceptor.ts +++ b/src/app/interceptors/cache.interceptor.ts @@ -23,7 +23,6 @@ export const cacheInterceptor: HttpInterceptorFn = (req, next) => { if (cachedResponse) { const age = Date.now() - cachedResponse.timestamp; if (age < CACHE_DURATION) { - // console.log(`[Cache] Returning cached response for: ${req.url}`); return of(cachedResponse.response.clone()); } else { // Кэш устарел, удаляем @@ -35,7 +34,6 @@ export const cacheInterceptor: HttpInterceptorFn = (req, next) => { return next(req).pipe( tap(event => { if (event instanceof HttpResponse) { - // console.log(`[Cache] Caching response for: ${req.url}`); cache.set(req.url, { response: event.clone(), timestamp: Date.now() diff --git a/src/app/pages/info/about/about.component.html b/src/app/pages/info/about/about.component.html index 590ae6a..7ec0d9f 100644 --- a/src/app/pages/info/about/about.component.html +++ b/src/app/pages/info/about/about.component.html @@ -1,6 +1,5 @@ - diff --git a/src/app/pages/info/contacts/contacts.component.html b/src/app/pages/info/contacts/contacts.component.html index 20c9906..eb8dcec 100644 --- a/src/app/pages/info/contacts/contacts.component.html +++ b/src/app/pages/info/contacts/contacts.component.html @@ -1,34 +1,94 @@ diff --git a/src/app/pages/info/contacts/contacts.component.scss b/src/app/pages/info/contacts/contacts.component.scss index 4ea0567..acb266a 100644 --- a/src/app/pages/info/contacts/contacts.component.scss +++ b/src/app/pages/info/contacts/contacts.component.scss @@ -27,14 +27,17 @@ strong { display: block; margin-bottom: 0.25rem; - color: var(--text-primary); + color: var(--text-secondary); + font-size: 0.85rem; } a { - color: var(--primary-color); + color: var(--text-primary); text-decoration: none; + font-weight: 500; &:hover { + color: var(--primary-color); text-decoration: underline; } } diff --git a/src/app/pages/info/delivery/delivery.component.html b/src/app/pages/info/delivery/delivery.component.html index 69c0b81..9ab2a3f 100644 --- a/src/app/pages/info/delivery/delivery.component.html +++ b/src/app/pages/info/delivery/delivery.component.html @@ -1,6 +1,5 @@ - diff --git a/src/app/pages/info/faq/faq.component.html b/src/app/pages/info/faq/faq.component.html index b9312e3..5135678 100644 --- a/src/app/pages/info/faq/faq.component.html +++ b/src/app/pages/info/faq/faq.component.html @@ -1,6 +1,5 @@ -