# 🔄 КОМАНДЫ ОТКАТА - СИСТЕМА REGISTERORGANIZATION

**Дата создания:** 17 сентября 2025  
**Фаза:** 4 - Миграция через комментарии  
**Статус:** ✅ Готово к использованию  

## 🎯 НАЗНАЧЕНИЕ

Этот документ содержит готовые команды для быстрого переключения между старой и новой системами регистрации организаций в случае необходимости отката.

---

## 📋 ДОСТУПНЫЕ КОМАНДЫ

### 🚨 КОМАНДЫ ЭКСТРЕННОГО ОТКАТА

#### 1. Полный откат на старую систему
```
откати registerOrganization через комментарии
```
**Действие:** Переключает весь проект на использование старых функций `registerFulfillmentOrganization` и `registerSellerOrganization`

#### 2. Переключение на вариант 1 (legacy)
```
переключи на вариант 1
```
**Действие:** Активирует закомментированный legacy код

#### 3. Переключение на вариант 2 (новая система)
```
переключи на вариант 2
```
**Действие:** Активирует новую универсальную систему (по умолчанию)

#### 4. Очистка комментариев
```
очисти комментарии registerOrganization
```
**Действие:** Удаляет неактивный закомментированный код

---

## 🔧 ДЕТАЛИ РЕАЛИЗАЦИИ

### ТЕКУЩИЙ СТАТУС СИСТЕМЫ

#### ✅ АКТИВНЫЙ: Вариант 2 (Новая система)
- **Файл:** `src/graphql/resolvers/domains/organization-management.ts`
- **Функция:** `registerOrganization` (строки 890-929)
- **Сервис:** `OrganizationRegistrationService`
- **Логика:** Универсальная регистрация для всех типов организаций

#### 📜 ЗАКОММЕНТИРОВАН: Вариант 1 (Старая система)
- **Файл:** `src/graphql/resolvers/domains/organization-management.ts`
- **Функции:** `registerFulfillmentOrganization` + `registerSellerOrganization`
- **Логика:** Раздельные функции для разных типов организаций
- **Статус:** Полностью рабочий код в комментариях (строки 932-1031)

---

## 🎮 ПРОЦЕДУРА ОТКАТА

### СЦЕНАРИЙ: Критическая ошибка в новой системе

1. **Команда экстренного отката:**
   ```
   откати registerOrganization через комментарии
   ```

2. **Что происходит автоматически:**
   - Закомментируется ВАРИАНТ 2 (новая система)
   - Раскомментируется ВАРИАНТ 1 (старая система)
   - Обновится статус в комментариях файла

3. **Что нужно сделать вручную:**
   - Перезапустить dev сервер: `npm run dev`
   - Проверить работоспособность регистрации
   - Мониторить логи на предмет ошибок

4. **Время выполнения:** ~30 секунд

---

## 🧪 ТЕСТИРОВАНИЕ ОТКАТА

### Тест 1: Откат и восстановление
```bash
# Шаг 1: Откат на старую систему
"переключи на вариант 1"

# Шаг 2: Проверка работоспособности
# - Регистрация фулфилмент организации с ИНН
# - Регистрация селлер организации с API ключами

# Шаг 3: Возврат к новой системе
"переключи на вариант 2"

# Шаг 4: Проверка работоспособности
# - Универсальная регистрация всех типов
```

### Тест 2: Полная очистка
```bash
# После успешного тестирования удалить legacy код
"очисти комментарии registerOrganization"
```

---

## 🚨 КРИТИЧЕСКИЕ МОМЕНТЫ

### ⚠️ ВАЖНО: Проверки перед откатом

1. **База данных:** Убедиться что нет активных транзакций регистрации
2. **Пользователи:** Предупредить о возможном кратковременном недоступности
3. **Мониторинг:** Подготовить инструменты мониторинга ошибок
4. **Логи:** Сохранить логи до отката для анализа

### ⚠️ ВАЖНО: После отката

1. **Валидация:** Проверить регистрацию каждого типа организации
2. **API ключи:** Убедиться что валидация маркетплейсов работает
3. **Партнерство:** Проверить реферальную систему и автопартнерство
4. **Уведомления:** Сообщить команде о статусе отката

---

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

### Ключевые метрики для проверки:
- **Успешность регистрации:** >95%
- **Время отклика API:** <5 секунд
- **Ошибки валидации:** <1%
- **Создание партнерств:** Функционально

### Логи для мониторинга:
```bash
# Поиск ошибок новой системы
grep "REGISTER_ORGANIZATION.*ВАРИАНТ 2.*ошибка" logs/app.log

# Поиск ошибок старой системы  
grep "REGISTER_ORGANIZATION.*ВАРИАНТ 1.*ошибка" logs/app.log

# Мониторинг переключений
grep "ВАРИАНТ.*АКТИВНЫЙ" logs/app.log
```

---

## 🔮 ПЛАНЫ НА БУДУЩЕЕ

### Фаза 5: Финализация (после успешного тестирования)
1. **Удаление legacy кода** - команда `очисти комментарии`
2. **Оптимизация производительности** - профилирование новой функции
3. **Документирование API** - обновление схемы и документации

### Критерии успеха для удаления legacy:
- [ ] 2 недели стабильной работы новой системы
- [ ] 0 критических инцидентов
- [ ] Все типы организаций регистрируются корректно
- [ ] Performance метрики в норме

---

## 📞 КОНТАКТЫ ДЛЯ ЭКСТРЕННЫХ СИТУАЦИЙ

**При критических ошибках:**
1. Выполнить команду отката (см. выше)
2. Зафиксировать проблему в issue
3. Собрать логи и контекст ошибки
4. Уведомить команду

**Ответственные:**
- **Техническая реализация:** Claude AI
- **Продуктовые решения:** Veronika Smirnova
- **Код ревью:** Команда разработки

---

**Статус:** 🟢 Готово к использованию  
**Последнее обновление:** 17 сентября 2025, 16:00