# 🚨 ПЛАН БЕЗОПАСНОЙ МИГРАЦИИ: useAuth → AuthContext

**Проект:** SFERA  
**Дата:** 18.09.2025  
**Критичность:** ВЫСОКАЯ  
**Статус:** ЭКСТРЕННАЯ МИГРАЦИЯ  

---

## 📊 ТЕКУЩАЯ СИТУАЦИЯ

### ✅ МИГРИРОВАНО (8 компонентов):
- `/src/components/layout/app-shell.tsx`
- `/src/components/dashboard/sidebar/index.tsx`
- `/src/components/dashboard/sidebar/SellerSidebar.tsx`
- `/src/components/dashboard/sidebar/FulfillmentSidebar.tsx`
- `/src/components/dashboard/sidebar/LogistSidebar.tsx`
- `/src/components/dashboard/sidebar/WholesaleSidebar.tsx`
- `/src/components/auth-guard.tsx`
- `/src/components/seller-statistics/seller-statistics-dashboard.tsx`

### ❌ ТРЕБУЕТ МИГРАЦИИ (56 компонентов):
**🔴 КРИТИЧЕСКИЕ УГРОЗЫ:** 8 компонентов  
**⚠️ ВЫСОКИЙ РИСК:** 15 компонентов  
**📋 СРЕДНИЙ РИСК:** 20 компонентов  
**🟢 НИЗКИЙ РИСК:** 13 компонентов  

---

## 🚨 КРИТИЧЕСКИЕ УЯЗВИМОСТИ

### 1. **SECURITY HOLE** - Обход авторизации ролей
**Компонент:** `useRoleGuard.ts` (используется на 49 страницах)  
**Проблема:** Селлеры могут получить доступ к данным фулфилмента  
**Бизнес-риск:** Нарушение конфиденциальности клиентских данных  

### 2. **INFINITE LOOPS** - Бесконечные циклы регистрации  
**Компонент:** `auth-flow.tsx`  
**Проблема:** `window.location.reload()` при рассинхроне состояний  
**Бизнес-риск:** Потеря новых клиентов, невозможность регистрации  

### 3. **PROFILE CORRUPTION** - Коррупция пользовательских данных
**Компонент:** `user-settings.tsx`  
**Проблема:** Обновления не отражаются в интерфейсе  
**Бизнес-риск:** Пользователи думают что система не работает  

---

## 🛡️ СТРАТЕГИЯ БЕЗОПАСНОЙ МИГРАЦИИ

### 🎯 ПРИНЦИПЫ:
1. **Rollback First** - каждое изменение должно иметь план отката
2. **Test Everything** - тестирование на каждом этапе
3. **Monitor Always** - мониторинг состояния на каждом шаге
4. **Backup Critical** - резервные копии критических компонентов
5. **Incremental Progress** - поэтапная миграция с проверками

### 📋 CHECKPOINT SYSTEM:
- **Checkpoint Alpha** - после каждого критического компонента
- **Checkpoint Beta** - после группы высокого риска
- **Checkpoint Gamma** - после средней группы
- **Checkpoint Final** - полное тестирование

---

## 🔥 ФАЗА 1: ЭКСТРЕННАЯ МИГРАЦИЯ (24 часа)

### ⚡ ЭТАП 1.1: КРИТИЧЕСКИЕ ИСПРАВЛЕНИЯ (2 часа)

#### 🎯 **ЦЕЛЬ:** Устранить security hole и routing issues

**1.1.1 useRoleGuard.ts** - КРИТИЧНО (15 минут)
```bash
# Backup
cp src/hooks/useRoleGuard.ts src/hooks/useRoleGuard.ts.backup

# Rollback plan
git stash push -m "useRoleGuard migration rollback point"
```

**Изменения:**
```typescript
// BEFORE
import { useAuth } from '@/hooks/useAuth'
const { user } = useAuth()

// AFTER
import { useAuthContext } from '@/contexts/AuthContext'
const { user } = useAuthContext()
```

**Тестирование:**
- [ ] Селлер не может зайти в /fulfillment/*
- [ ] Фулфилмент не может зайти в /seller/*
- [ ] Логист не может зайти в /wholesale/*
- [ ] Правильные редиректы на home страницы

**Rollback условия:** Если любой из тестов провален

---

**1.1.2 app/page.tsx** - КРИТИЧНО (10 минут)

**Изменения:**
```typescript
// BEFORE
import { useAuth } from '@/hooks/useAuth'
const { user } = useAuth()

// AFTER  
import { useAuthContext } from '@/contexts/AuthContext'
const { user } = useAuthContext()
```

**Тестирование:**
- [ ] Неавторизованные пользователи видят landing
- [ ] Авторизованные перенаправляются в dashboard
- [ ] Нет infinite redirects

---

### ⚡ ЭТАП 1.2: АУТЕНТИФИКАЦИЯ (4 часа)

#### 🎯 **ЦЕЛЬ:** Исправить flow регистрации и SMS

**1.2.1 auth-flow.tsx** - КРИТИЧНО (45 минут)

**Backup и Rollback Plan:**
```bash
cp src/components/auth/auth-flow.tsx src/components/auth/auth-flow.tsx.backup
git stash push -m "auth-flow migration rollback point"
```

**Изменения:**
```typescript
// ОПАСНЫЙ КОД (УДАЛИТЬ):
if (isAuthenticated && user && !user.organization) {
  localStorage.removeItem('authToken')
  window.location.reload() // 🚨 CAUSES INFINITE LOOPS
}

// БЕЗОПАСНЫЙ КОД:
if (isAuthenticated && user && !user.organization) {
  logout() // Use AuthContext logout method
}
```

**Детальная замена:**
```typescript
// BEFORE
import { useAuth } from '@/hooks/useAuth'
const { isAuthenticated, user } = useAuth()

// AFTER
import { useAuthContext } from '@/contexts/AuthContext'
const { isAuthenticated, user, logout } = useAuthContext()
```

**Критическое тестирование:**
- [ ] Новая регистрация работает без циклов
- [ ] Существующие пользователи без организации проходят регистрацию
- [ ] Полные пользователи перенаправляются в dashboard
- [ ] НЕТ `window.location.reload()` в консоли браузера

---

**1.2.2 sms-step.tsx** - ВЫСОКИЙ РИСК (30 минут)

**Изменения:**
```typescript
// BEFORE
import { useAuth } from '@/hooks/useAuth'
const { verifySmsCode } = useAuth()

// AFTER
import { useAuthContext } from '@/contexts/AuthContext'
const { verifySmsCode } = useAuthContext()
```

**Тестирование:**
- [ ] SMS коды работают для новых пользователей
- [ ] SMS коды работают для существующих пользователей
- [ ] Правильные редиректы после верификации
- [ ] Состояние пользователя синхронизировано

---

### 📋 CHECKPOINT ALPHA - КРИТИЧЕСКАЯ ПРОВЕРКА

**Обязательные тесты перед продолжением:**

1. **Безопасность ролей:**
   ```bash
   # Тест: попытка доступа селлера к фулфилменту
   curl -H "Authorization: Bearer SELLER_TOKEN" http://localhost:3000/fulfillment/dashboard
   # Ожидаемый результат: 403 или редирект
   ```

2. **Регистрационный flow:**
   - Регистрация нового селлера: ✅/❌
   - Регистрация нового фулфилмента: ✅/❌
   - SMS верификация: ✅/❌
   - Завершение регистрации: ✅/❌

3. **Состояние системы:**
   - Нет ошибок в консоли: ✅/❌
   - Сайдбар синхронизирован: ✅/❌
   - Роутинг работает: ✅/❌

**🛑 STOP CONDITIONS:**
Если любой из тестов провален → ROLLBACK всех изменений фазы 1

---

## 🔥 ФАЗА 2: ПРОФИЛИ И НАСТРОЙКИ (24-48 часов)

### 🎯 ЭТАП 2.1: ПОЛЬЗОВАТЕЛЬСКИЕ ДАННЫЕ

**2.1.1 user-settings.tsx** - СРЕДНИЙ РИСК (60 минут)

**Особенности миграции:**
- Компонент использует `updateUser` для мгновенного обновления sidebar
- Сложная логика сохранения профиля и организации
- API ключи должны синхронизироваться с AuthContext

**Детальный план:**
```typescript
// КРИТИЧЕСКАЯ ЗАМЕНА:
// BEFORE
const { user, updateUser } = useAuth()

// AFTER  
const { user, updateUser } = useAuthContext()
```

**Тестирование:**
- [ ] Изменения профиля отражаются в sidebar немедленно
- [ ] API ключи сохраняются и отображаются
- [ ] Аватар обновляется корректно
- [ ] Организационные данные синхронизируются

---

**2.1.2 confirmation-step.tsx** - ВЫСОКАЯ СЛОЖНОСТЬ (120 минут)

**⚠️ СПЕЦИАЛЬНАЯ ОСТОРОЖНОСТЬ:**
Этот компонент содержит критическую бизнес-логику создания организаций с системой rollback.

**Анализ сложности:**
```typescript
// Три разных метода регистрации:
const { 
  registerFulfillmentOrganization,    // Для фулфилмента/логистики/опта
  registerSellerOrganization,         // Для селлеров  
  registerOrganization                // Новый универсальный
} = useAuth()

// A/B тестирование между методами (линии 50, 88-111)
// Rollback механизм в useAuth (восстановление состояния при ошибках)
```

**Пошаговая миграция:**
1. Проверить что все три метода есть в AuthContext ✅
2. Заменить импорт
3. Протестировать каждый тип организации отдельно
4. Проверить rollback механизм работает

**Критическое тестирование:**
- [ ] Фулфилмент регистрация с ИНН
- [ ] Селлер регистрация с API ключами  
- [ ] Универсальная регистрация
- [ ] Rollback при ошибках сети
- [ ] Партнерские и реферальные коды

---

## 🔥 ФАЗА 3: БИЗНЕС-КОМПОНЕНТЫ (48-72 часа)

### 🎯 ЭТАП 3.1: ДАШБОРДЫ И СТАТИСТИКА

**Приоритетные компоненты:**
1. `dashboard-home.tsx` - главная страница всех ролей
2. `economics-page-wrapper.tsx` - экономические данные
3. `fulfillment-warehouse-dashboard/index.tsx` - управление складом
4. `supplier-orders-tabs-v2.tsx` - заказы поставщиков

**Стратегия миграции:**
- Один дашборд за раз
- Полное тестирование каждого типа пользователя
- Проверка доступа к данным

---

### 🎯 ЭТАП 3.2: КОММУНИКАЦИИ И СЕРВИСЫ

**Компоненты:**
1. `messenger-chat.tsx` - система сообщений
2. `file-uploader.tsx` - загрузка файлов
3. `voice-recorder.tsx` - голосовые записи

**Особенности:**
- Могут содержать user ID для авторизации запросов
- Низкий риск, но важны для UX

---

## 🔥 ФАЗА 4: ПОСТАВКИ И ЗАКАЗЫ (72-96 часов)

### 🎯 МАССОВАЯ МИГРАЦИЯ КОМПОНЕНТОВ ПОСТАВОК

**Категории:**
- **Создание поставок:** 8 компонентов
- **Управление поставками:** 12 компонентов  
- **Отчеты и аналитика:** 6 компонентов

**Batching strategy:**
- Мигрируем по функциональным группам
- Тестируем весь workflow поставок сразу

---

## 🔥 ФАЗА 5: ДОЛГОСРОЧНЫЕ КОМПОНЕНТЫ (96+ часов)

### 🎯 ЭТАП 5.1: ДОМАШНИЕ СТРАНИЦЫ
- `seller-home-page.tsx`
- `fulfillment-home-page.tsx`  
- `logist-home-page.tsx`
- `wholesale-home-page.tsx`

### 🎯 ЭТАП 5.2: СПЕЦИАЛИЗИРОВАННЫЕ КОМПОНЕНТЫ
- Advertising таблицы
- Warehouse управление
- Logistics заказы

---

## 🛡️ СИСТЕМА БЕЗОПАСНОСТИ И ROLLBACK

### 📋 ROLLBACK TRIGGERS

**Автоматический rollback при:**
- Ошибки аутентификации > 5% пользователей
- Невозможность входа в систему
- Критические ошибки в console (> 100/минуту)
- Жалобы пользователей на недоступность

### 🔄 ROLLBACK PROCEDURE

**Для каждой фазы:**
```bash
# 1. Остановить миграцию
git stash push -m "emergency_rollback_$(date)"

# 2. Вернуться к последнему стабильному состоянию  
git checkout HEAD~1

# 3. Быстрый деплой
npm run build && npm start

# 4. Проверить работоспособность
curl -f http://localhost:3000/health || echo "ROLLBACK FAILED"

# 5. Уведомить команду
echo "ROLLBACK EXECUTED: $(date)" >> rollback.log
```

### 📊 МОНИТОРИНГ

**Метрики для отслеживания:**
- Успешные аутентификации (должно остаться > 95%)
- Время загрузки страниц (не должно увеличиться > 20%)
- Ошибки JavaScript в console (< 50/час)
- User registration completion rate (> 80%)

---

## 🧪 ОБЯЗАТЕЛЬНОЕ ТЕСТИРОВАНИЕ И ДИАГНОСТИКА ПОСЛЕ КАЖДОЙ ФАЗЫ

### 📋 ПРОТОКОЛ ТЕСТИРОВАНИЯ

**ПРАВИЛО:** После завершения каждой фазы проводится полная диагностика системы. Переход к следующей фазе ТОЛЬКО после успешного прохождения всех тестов.

### 🔴 CHECKPOINT ALPHA - ПОСЛЕ ФАЗЫ 1 (Критические исправления)

#### 🚨 ОБЯЗАТЕЛЬНЫЕ ТЕСТЫ БЕЗОПАСНОСТИ:

**1. Тест авторизации ролей (КРИТИЧЕСКИЙ):**
```bash
# Создаем тестовых пользователей каждой роли
node scripts/create-test-users.js

# Тестируем изоляцию ролей
curl -H "Authorization: Bearer SELLER_TOKEN" http://localhost:3000/fulfillment/dashboard
# Ожидаемо: 403 или редирект на /seller/dashboard

curl -H "Authorization: Bearer FULFILLMENT_TOKEN" http://localhost:3000/seller/statistics  
# Ожидаемо: 403 или редирект на /fulfillment/dashboard

curl -H "Authorization: Bearer WHOLESALE_TOKEN" http://localhost:3000/logist/orders
# Ожидаемо: 403 или редирект на /wholesale/dashboard
```

**2. Тест регистрационного потока (КРИТИЧЕСКИЙ):**
```javascript
// Автоматизированный тест в browser console
async function testRegistrationFlow() {
  const testResults = []
  
  // Тест 1: Новая регистрация селлера
  try {
    await fetch('/api/graphql', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        query: `mutation { sendSmsCode(phone: "79999999999") { success message } }`
      })
    })
    testResults.push('✅ SMS отправка работает')
  } catch (e) {
    testResults.push('❌ SMS отправка сломана: ' + e.message)
  }
  
  return testResults
}
```

**3. Диагностика состояния системы:**
```bash
# Проверка отсутствия window.location.reload() в auth-flow
grep -r "window.location.reload" src/components/auth/
# Ожидаемо: НЕТ результатов

# Проверка использования AuthContext
grep -r "useAuthContext" src/components/auth/ | wc -l
# Ожидаемо: > 3 (auth-flow, sms-step, confirmation-step)

# Проверка отсутствия useAuth в критических компонентах
grep -r "useAuth" src/hooks/useRoleGuard.ts src/app/page.tsx
# Ожидаемо: НЕТ результатов
```

#### 📊 МЕТРИКИ ПРОИЗВОДИТЕЛЬНОСТИ ПОСЛЕ ФАЗЫ 1:
```bash
# Время загрузки главной страницы
curl -w "@curl-format.txt" -o /dev/null -s http://localhost:3000/

# Количество ошибок JavaScript
# Мониторинг console.error за 5 минут, должно быть < 10

# Memory usage
node --inspect src/app/page.tsx
# Baseline для сравнения с последующими фазами
```

#### 🛑 STOP CONDITIONS ДЛЯ ФАЗЫ 1:
- Любой тест авторизации ролей провален → ROLLBACK
- Регистрация не работает → ROLLBACK  
- > 50 JavaScript ошибок в час → ROLLBACK
- Infinite redirects обнаружены → ROLLBACK

---

### 🔴 CHECKPOINT BETA - ПОСЛЕ ФАЗЫ 2 (Профили и настройки)

#### 🧪 ТЕСТЫ ПОЛЬЗОВАТЕЛЬСКИХ ДАННЫХ:

**1. Тест синхронизации профиля:**
```javascript
// Тест обновления профиля и отражения в sidebar
async function testProfileSync() {
  // 1. Открыть настройки пользователя
  // 2. Изменить имя/аватар
  // 3. Сохранить
  // 4. Проверить что sidebar обновился МГНОВЕННО
  // 5. Перезагрузить страницу
  // 6. Проверить что изменения сохранились
  
  const beforeName = document.querySelector('[data-testid="sidebar-user-name"]').textContent
  
  // Симуляция изменения профиля
  await updateProfile({ managerName: 'Test Name Updated' })
  
  const afterName = document.querySelector('[data-testid="sidebar-user-name"]').textContent
  
  return beforeName !== afterName ? '✅ Профиль синхронизирован' : '❌ Синхронизация сломана'
}
```

**2. Тест API ключей:**
```bash
# Добавление WB API ключа через настройки
# Проверка что ключ появился в статистике
curl -X POST http://localhost:3000/api/graphql \
  -H "Authorization: Bearer USER_TOKEN" \
  -d '{"query":"mutation { addMarketplaceApiKey(input: {marketplace: WILDBERRIES, apiKey: \"test_key\"}) { success } }"}'

# Проверка что ключ доступен в статистике
curl -X POST http://localhost:3000/api/graphql \
  -H "Authorization: Bearer USER_TOKEN" \
  -d '{"query":"query { getWildberriesStatistics(period: \"week\") { success message } }"}'
```

**3. Тест создания организаций:**
```javascript
// Тест всех трех методов регистрации
const testOrganizationCreation = async () => {
  const results = []
  
  // Тест универсального метода
  try {
    const result = await registerOrganization({
      phone: '79999999998',
      type: 'SELLER',
      wbApiKey: 'test_key'
    })
    results.push(result.success ? '✅ Универсальная регистрация' : '❌ Универсальная регистрация')
  } catch (e) {
    results.push('❌ Универсальная регистрация: ' + e.message)
  }
  
  return results
}
```

#### 📊 ДИАГНОСТИКА СОСТОЯНИЯ ПОСЛЕ ФАЗЫ 2:
```bash
# Проверка количества мигрированных компонентов
grep -r "useAuthContext" src/ | grep -v "node_modules" | wc -l
# Ожидаемо: ~15-20 (базовые + профильные компоненты)

# Проверка оставшихся useAuth
grep -r "useAuth" src/ | grep -v "useAuthContext" | grep -v "node_modules" | wc -l  
# Ожидаемо: ~40-45 (уменьшение на 10-15 компонентов)

# Memory leak detection
node --expose-gc --inspect index.js
# Проверка отсутствия утечек памяти от дублирующихся состояний
```

#### 🛑 STOP CONDITIONS ДЛЯ ФАЗЫ 2:
- Профиль не синхронизируется с sidebar → ROLLBACK
- API ключи не сохраняются → ROLLBACK
- Регистрация организаций сломана → ROLLBACK
- Memory leaks обнаружены → INVESTIGATE & FIX

---

### 🔴 CHECKPOINT GAMMA - ПОСЛЕ ФАЗЫ 3 (Бизнес-компоненты)

#### 🏢 ТЕСТЫ БИЗНЕС-ФУНКЦИЙ:

**1. Тест дашбордов всех ролей:**
```bash
# Создаем полный workflow тест
node tests/business-dashboard-test.js

# Тест доступа к экономическим данным
# Тест доступа к складским данным  
# Тест доступа к заказам поставщиков
```

**2. Тест целостности данных:**
```javascript
// Проверка что все типы пользователей видят правильные данные
async function testDataIntegrity() {
  const roles = ['SELLER', 'FULFILLMENT', 'LOGIST', 'WHOLESALE']
  const results = []
  
  for (const role of roles) {
    const user = await loginAsRole(role)
    const dashboardData = await fetchDashboardData()
    
    // Проверяем что данные соответствуют роли
    if (role === 'SELLER' && !dashboardData.wildberriesStats) {
      results.push(`❌ ${role}: отсутствуют WB статистики`)
    } else if (role === 'FULFILLMENT' && !dashboardData.warehouseData) {
      results.push(`❌ ${role}: отсутствуют складские данные`)
    } else {
      results.push(`✅ ${role}: данные корректны`)
    }
  }
  
  return results
}
```

#### 📊 ДИАГНОСТИКА ПРОИЗВОДИТЕЛЬНОСТИ ПОСЛЕ ФАЗЫ 3:
```bash
# Benchmark основных страниц
curl -w "@curl-format.txt" -o /dev/null -s http://localhost:3000/seller/dashboard
curl -w "@curl-format.txt" -o /dev/null -s http://localhost:3000/fulfillment/dashboard  
curl -w "@curl-format.txt" -o /dev/null -s http://localhost:3000/warehouse/dashboard

# Ожидаемо: время загрузки < 2 секунд для каждой

# API requests count
# Мониторинг количества GET_ME запросов
# Ожидаемо: 1 запрос на сессию (вместо N на каждый компонент)
```

#### 🛑 STOP CONDITIONS ДЛЯ ФАЗЫ 3:
- Любой дашборд недоступен → ROLLBACK
- Данные отображаются неправильно → ROLLBACK
- Время загрузки > 3 секунд → INVESTIGATE & OPTIMIZE
- Critical business functions broken → IMMEDIATE ROLLBACK

---

### 🔴 CHECKPOINT DELTA - ПОСЛЕ ФАЗЫ 4 (Поставки и заказы)

#### 📦 ТЕСТЫ SUPPLY CHAIN:

**1. End-to-end тест поставок:**
```javascript
// Полный цикл: создание → управление → отчеты
async function testSupplyChain() {
  const results = []
  
  // 1. Создание поставки
  const supply = await createSupply({
    type: 'FULFILLMENT_GOODS',
    items: [{ productId: 'test', quantity: 10 }]
  })
  results.push(supply.success ? '✅ Создание поставки' : '❌ Создание поставки')
  
  // 2. Обновление статуса
  const statusUpdate = await updateSupplyStatus(supply.id, 'IN_PROGRESS')
  results.push(statusUpdate.success ? '✅ Обновление статуса' : '❌ Обновление статуса')
  
  // 3. Генерация отчета
  const report = await generateSupplyReport(supply.id)
  results.push(report.success ? '✅ Отчеты работают' : '❌ Отчеты сломаны')
  
  return results
}
```

**2. Тест заказов поставщиков:**
```bash
# Тест workflow заказов
node tests/supplier-orders-workflow.js

# Проверка уведомлений
# Проверка статусов заказов
# Проверка расчетов
```

#### 📊 ПОЛНАЯ ДИАГНОСТИКА СИСТЕМЫ ПОСЛЕ ФАЗЫ 4:
```bash
# Состояние миграции
echo "=== MIGRATION STATUS ==="
grep -r "useAuthContext" src/ | wc -l  # Ожидаемо: ~50+
grep -r "useAuth" src/ | grep -v "useAuthContext" | wc -l  # Ожидаемо: ~10-15

# Performance metrics
echo "=== PERFORMANCE ==="
node scripts/performance-benchmark.js

# Memory usage  
echo "=== MEMORY ==="
node --expose-gc scripts/memory-test.js

# Error rates
echo "=== ERROR MONITORING ==="
grep "ERROR" logs/app.log | tail -100
```

#### 🛑 STOP CONDITIONS ДЛЯ ФАЗЫ 4:
- Supply chain workflow broken → IMMEDIATE ROLLBACK
- Data corruption in orders → IMMEDIATE ROLLBACK  
- Performance degradation > 50% → INVESTIGATE
- Memory usage > baseline + 30% → OPTIMIZE

---

### 🔴 CHECKPOINT FINAL - ПОСЛЕ ФАЗЫ 5 (Финализация)

#### 🎯 ПОЛНОЕ РЕГРЕССИОННОЕ ТЕСТИРОВАНИЕ:

**1. Автоматизированный тест всех функций:**
```bash
# Запуск полного test suite
npm run test:e2e
npm run test:integration  
npm run test:security

# Ожидаемо: 100% pass rate
```

**2. Нагрузочное тестирование:**
```bash
# Симуляция 100 одновременных пользователей
npm run test:load

# Проверка стабильности при нагрузке
# Проверка memory leaks
# Проверка response times
```

**3. Безопасность финальная:**
```bash
# Security audit
npm audit
npm run test:security

# Проверка отсутствия useAuth
grep -r "import.*useAuth" src/ | grep -v "useAuthContext"
# Ожидаемо: ТОЛЬКО в useAuth.ts файле (если оставляем для compatibility)
```

#### 📊 ФИНАЛЬНЫЕ МЕТРИКИ:

```bash
echo "=== FINAL MIGRATION REPORT ==="
echo "Components migrated: $(grep -r "useAuthContext" src/ | wc -l)"
echo "Components remaining: $(grep -r "useAuth" src/ | grep -v "useAuthContext" | wc -l)"
echo "Performance improvement: $(node scripts/performance-compare.js)"
echo "Memory reduction: $(node scripts/memory-compare.js)"
echo "API calls reduction: $(node scripts/api-calls-compare.js)"
```

**Ожидаемые результаты:**
- ✅ Components migrated: 56+
- ✅ Components remaining: 0 (кроме useAuth.ts если оставляем)
- ✅ Performance improvement: 80%+
- ✅ Memory reduction: 85%+  
- ✅ API calls reduction: 90%+

#### 🛑 FINAL APPROVAL CONDITIONS:
- Все e2e тесты пройдены: ✅/❌
- Нагрузочные тесты стабильны: ✅/❌
- Security audit чистый: ✅/❌
- Performance targets достигнуты: ✅/❌
- No critical bugs: ✅/❌

**ТОЛЬКО при 100% SUCCESS → Миграция считается ЗАВЕРШЕННОЙ**

---

### 🔴 КРИТИЧЕСКИЕ ТЕСТЫ (ПОСЛЕ КАЖДОГО ЭТАПА)

**1. Базовая аутентификация:**
```javascript
// Тест в browser console
localStorage.setItem('authToken', 'valid_token')
window.location.reload()
// Проверить: пользователь автоматически авторизован
```

**2. Переключение ролей:**
```bash
# Селлер пытается зайти в фулфилмент
GET /fulfillment/dashboard
# Ожидаемо: редирект на /seller/dashboard
```

**3. Регистрационный flow:**
- SMS код → Верификация → Выбор типа → Создание организации → Dashboard

### 📋 ИНТЕГРАЦИОННЫЕ ТЕСТЫ

**1. Синхронизация состояния:**
- Обновить профиль → Проверить sidebar → Проверить user-settings

**2. API ключи:**
- Добавить WB ключ → Проверить статистику → Проверить настройки

**3. Роли и доступы:**
- Каждая роль → Проверить доступные разделы → Проверить запрещенные разделы

---

## 📈 ПЛАН ПРОИЗВОДИТЕЛЬНОСТИ

### ⚡ ОПТИМИЗАЦИИ

**1. Устранение дублирования состояния:**
- До: 56 компонентов × useState = 56 экземпляров состояния
- После: 1 AuthContext = 1 глобальное состояние
- Экономия памяти: ~85%

**2. Уменьшение API запросов:**
- До: Каждый useAuth делает GET_ME при монтировании
- После: 1 запрос в AuthContext для всех компонентов
- Экономия запросов: ~90%

**3. Улучшение UX:**
- Мгновенная синхронизация данных между компонентами
- Нет задержек при обновлении профиля
- Консистентное состояние загрузки

---

## 🎯 SUCCESS CRITERIA

### ✅ ОБЯЗАТЕЛЬНЫЕ РЕЗУЛЬТАТЫ

**Безопасность:**
- [ ] Нет security holes в авторизации ролей
- [ ] Все компоненты используют AuthContext
- [ ] Нет утечек состояния между useAuth и AuthContext

**Функциональность:**
- [ ] Все типы регистрации работают  
- [ ] SMS верификация стабильна
- [ ] Профили синхронизируются
- [ ] API ключи сохраняются

**Производительность:**
- [ ] Время загрузки < 2 секунд
- [ ] Memory usage снижен на 80%+
- [ ] API запросы сокращены на 85%+

**UX:**
- [ ] Нет infinite loops
- [ ] Мгновенное обновление интерфейса
- [ ] Стабильная работа во всех браузерах

---

## 📞 ПЛАН КОММУНИКАЦИИ

### 🚨 КРИТИЧЕСКИЕ УВЕДОМЛЕНИЯ

**Команде разработки:**
- Начало каждой фазы: Slack + Email
- Критические проблемы: Немедленный звонок
- Успешное завершение: Отчет в Slack

**Бизнес-команде:**
- Ежедневные отчеты о прогрессе
- Уведомления о рисках заранее
- Финальный отчет с метриками

### 📅 ГРАФИК УВЕДОМЛЕНИЙ

| Время | Событие | Кому | Канал |
|-------|---------|------|-------|
| Старт фазы | Начало миграции | Dev team | Slack |
| +2 часа | Checkpoint Alpha | Dev + QA | Slack |
| +24 часа | Фаза 1 завершена | Все | Email |
| +48 часов | Фаза 2 завершена | Все | Email |
| Завершение | Полная миграция | Все | Meeting |

---

## 📋 CHECKLIST ВЫПОЛНЕНИЯ

### 🔥 ФАЗА 1: КРИТИЧЕСКАЯ (24 часа)
- [ ] useRoleGuard.ts мигрирован
- [ ] app/page.tsx мигрирован  
- [ ] auth-flow.tsx исправлен (убран window.reload)
- [ ] sms-step.tsx мигрирован
- [ ] Checkpoint Alpha пройден
- [ ] Безопасность ролей работает
- [ ] Регистрация стабильна

### 🔥 ФАЗА 2: ПРОФИЛИ (48 часов)
- [ ] user-settings.tsx мигрирован
- [ ] confirmation-step.tsx мигрирован
- [ ] Профили синхронизируются с sidebar
- [ ] API ключи работают
- [ ] Все типы регистрации протестированы

### 🔥 ФАЗА 3: БИЗНЕС (72 часа)  
- [ ] dashboard-home.tsx мигрирован
- [ ] economics компоненты мигрированы
- [ ] warehouse дашборды мигрированы
- [ ] Все типы пользователей протестированы

### 🔥 ФАЗА 4: ПОСТАВКИ (96 часов)
- [ ] Создание поставок мигрировано
- [ ] Управление поставками мигрировано
- [ ] Отчеты мигрированы
- [ ] Full supply chain workflow протестирован

### 🔥 ФАЗА 5: ФИНАЛИЗАЦИЯ (120+ часов)
- [ ] Все домашние страницы мигрированы
- [ ] Специализированные компоненты мигрированы
- [ ] useAuth.ts удален из кодовой базы
- [ ] Полное регрессионное тестирование

---

## 🎯 ЗАКЛЮЧЕНИЕ

Данный план обеспечивает **безопасную поэтапную миграцию** с минимальным риском для бизнеса. 

**Ключевые принципы:**
- **Safety First** - безопасность превыше скорости
- **Test Everything** - тестирование на каждом шаге  
- **Rollback Ready** - готовность к откату в любой момент
- **Monitor Always** - постоянный мониторинг состояния

**Ожидаемые результаты:**
- ✅ Устранение критических уязвимостей безопасности
- ✅ Стабильная работа всех компонентов
- ✅ Улучшение производительности на 80%+
- ✅ Единое состояние аутентификации для всего приложения

**Временные рамки:** 5-7 дней активной разработки + тестирование

---

*Документ подготовлен: 18.09.2025*  
*Статус: ГОТОВ К ВЫПОЛНЕНИЮ*  
*Приоритет: КРИТИЧЕСКИЙ*