# Инструкция по добавлению категорий тарифов ## ⚠️ ВАЖНО: Выберите один из вариантов миграции ### Вариант 1: Безопасная миграция (рекомендуется) Сохраняет существующие серверы и тарифы, добавляет новые тарифы. **Файл:** `backend/prisma/safe_tariff_migration.sql` ### Вариант 2: Полная очистка (только для разработки!) Удаляет ВСЕ серверы, платежи и тарифы. Начинает с чистого листа. **Файл:** `backend/prisma/clean_slate_migration.sql` --- ## 📋 Порядок действий (Вариант 1 - Безопасная миграция): ### 1. Подключитесь к MySQL ```bash mysql -u root -p ospabhost ``` Или через phpMyAdmin / Adminer / другой клиент БД. ### 2. Проверьте текущее состояние ```sql -- Посмотрите, какие тарифы используются SELECT t.id, t.name, COUNT(s.id) as servers_count FROM `tariff` t LEFT JOIN `server` s ON s.tariffId = t.id GROUP BY t.id, t.name; ``` ### 3. Примените безопасную миграцию ```bash source backend/prisma/safe_tariff_migration.sql ``` Или скопируйте и выполните вручную. **Этот скрипт:** - ✅ Добавит поле `category` в таблицу `tariff` - ✅ Обновит существующие тарифы (присвоит им `category = 'vps'`) - ✅ Удалит только неиспользуемые тарифы - ✅ Добавит 17 новых тарифов с категориями ### 4. Проверьте результат ```sql SELECT * FROM `tariff` ORDER BY `category`, `price`; ``` --- ## 🔥 Порядок действий (Вариант 2 - Полная очистка): ### ⚠️ ВНИМАНИЕ! Это удалит ВСЕ данные о серверах! Используйте только если: - Это тестовая/dev среда - Вы хотите начать с чистого листа - У вас есть резервная копия БД ### 1. Сделайте резервную копию! ```bash mysqldump -u root -p ospabhost > backup_before_migration.sql ``` ### 2. Примените миграцию ```bash mysql -u root -p ospabhost < backend/prisma/clean_slate_migration.sql ``` **Этот скрипт:** - ❌ Удалит все метрики серверов - ❌ Удалит все платежи - ❌ Удалит все серверы - ❌ Удалит все тарифы - ✅ Добавит поле `category` - ✅ Добавит 17 новых тарифов ### 3. Сбросьте Prisma клиент (опционально) ```bash cd backend npx prisma generate ``` --- ## 📝 Новые тарифы (17 шт): ### VPS/VDS (6 тарифов): ```bash cd backend npm start # или node dist/src/index.js ``` ## 🎨 Что изменилось на frontend: ### Новая страница тарифов: - ✅ **3 категории**: VPS/VDS, Хостинг, S3 Хранилище - ✅ **Вкладки** для переключения между категориями - ✅ **Иконки** для каждой категории - ✅ **Карточки** с галочками для списка функций - ✅ **Hero секция** с описанием - ✅ **Секция преимуществ** внизу - ✅ **CTA секция** с призывом к действию ### Дизайн: - Современный многосекционный layout - Sticky-табы для удобной навигации - Hover-эффекты на карточках - Градиентные фоны для Hero и CTA секций - Адаптивный дизайн для всех устройств ## 📦 Размеры после сборки: - **index.html**: 6.71 kB (gzip: 2.46 kB) - **CSS**: 66.64 kB (gzip: 10.64 kB) - **JS main**: 938.19 kB (gzip: 237.62 kB) - **React vendor**: 173.20 kB (gzip: 57.00 kB) - **UI vendor**: 17.26 kB (gzip: 5.99 kB) ## 🔧 Изменённые файлы: ### Backend: - ✅ `backend/prisma/schema.prisma` - добавлено поле `category` - ✅ `backend/prisma/manual_migration_category.sql` - миграция БД - ✅ `backend/prisma/add_tariff_categories.sql` - новые тарифы ### Frontend: - ✅ `frontend/src/pages/tariffs.tsx` - полностью переделана страница ## 📝 Примечания: 1. **Старые тарифы** не удаляются автоматически. Если нужно их удалить: ```sql DELETE FROM `tariff` WHERE `category` IS NULL; ``` 2. **Category enum**: Доступные значения - `vps`, `hosting`, `s3` 3. **API**: Backend автоматически вернёт поле `category` в ответе `/api/tariff` 4. **Фильтрация**: Frontend фильтрует тарифы по категории на клиентской стороне ## 🚀 Готово к деплою! После применения SQL и перезапуска backend всё будет работать.