Files
ospab.host/TARIFF_CATEGORIES_SETUP.md
2025-11-23 14:35:16 +03:00

5.3 KiB
Raw Blame History

Инструкция по добавлению категорий тарифов

⚠️ ВАЖНО: Выберите один из вариантов миграции

Вариант 1: Безопасная миграция (рекомендуется)

Сохраняет существующие серверы и тарифы, добавляет новые тарифы.

Файл: backend/prisma/safe_tariff_migration.sql

Вариант 2: Полная очистка (только для разработки!)

Удаляет ВСЕ серверы, платежи и тарифы. Начинает с чистого листа.

Файл: backend/prisma/clean_slate_migration.sql


📋 Порядок действий (Вариант 1 - Безопасная миграция):

1. Подключитесь к MySQL

mysql -u root -p ospabhost

Или через phpMyAdmin / Adminer / другой клиент БД.

2. Проверьте текущее состояние

-- Посмотрите, какие тарифы используются
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. Примените безопасную миграцию

source backend/prisma/safe_tariff_migration.sql

Или скопируйте и выполните вручную.

Этот скрипт:

  • Добавит поле category в таблицу tariff
  • Обновит существующие тарифы (присвоит им category = 'vps')
  • Удалит только неиспользуемые тарифы
  • Добавит 17 новых тарифов с категориями

4. Проверьте результат

SELECT * FROM `tariff` ORDER BY `category`, `price`;

🔥 Порядок действий (Вариант 2 - Полная очистка):

⚠️ ВНИМАНИЕ! Это удалит ВСЕ данные о серверах!

Используйте только если:

  • Это тестовая/dev среда
  • Вы хотите начать с чистого листа
  • У вас есть резервная копия БД

1. Сделайте резервную копию!

mysqldump -u root -p ospabhost > backup_before_migration.sql

2. Примените миграцию

mysql -u root -p ospabhost < backend/prisma/clean_slate_migration.sql

Этот скрипт:

  • Удалит все метрики серверов
  • Удалит все платежи
  • Удалит все серверы
  • Удалит все тарифы
  • Добавит поле category
  • Добавит 17 новых тарифов

3. Сбросьте Prisma клиент (опционально)

cd backend
npx prisma generate

📝 Новые тарифы (17 шт):

VPS/VDS (6 тарифов):

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. Старые тарифы не удаляются автоматически. Если нужно их удалить:

    DELETE FROM `tariff` WHERE `category` IS NULL;
    
  2. Category enum: Доступные значения - vps, hosting, s3

  3. API: Backend автоматически вернёт поле category в ответе /api/tariff

  4. Фильтрация: Frontend фильтрует тарифы по категории на клиентской стороне

🚀 Готово к деплою!

После применения SQL и перезапуска backend всё будет работать.