architect/_archive/MIGRATION_PLAN_PIROTEHNIKA_FULL.md

План полной миграции данных pirotehnika

Дата: 2025-12-22
Версия: 1.0.0


Текущий статус

ЗАВЕРШЕНО:
- PIM Service (6 таблиц мигрированы)

ОСТАЛОСЬ МИГРИРОВАТЬ:
- 47 таблиц из 53


Анализ данных (из инвентаризации)

1. PIM Service ✅ ГОТОВО

Таблицы (6):
- 1c_products (4,626)
- pim_products (1,042)
- pim_pirotehnika (762)
- pim_cost_rules (5)
- pim_sku_mappings (2,050)
- pim_bundle_items (0)

Статус: Мигрировано в L0-ORG/business-units/pirotehnika/services/pim/


2. Marketplace Sync Service ⏳ TODO

Назначение: Синхронизация товаров и заказов с маркетплейсами

Таблицы (12):

OZON Products & Orders:
- OZON_Products (2,051)
- OZON_Orders (343)
- OZON_OrderItems (350)

OZON Analytics:
- OZON_Analytics_Stocks (1,221)
- OZON_Analytics_Daily (0)

OZON Finance:
- OZON_Transactions (830)
- OZON_Payouts (0)
- OZON_Realization (0)

OZON Warehouse:
- OZON_Warehouses (14)
- OZON_Supply (0)
- OZON_SupplyItems (0)
- OZON_Shipments (0)
- OZON_Returns (0)

Функции:
- sync_products()
- sync_orders()
- sync_stocks()
- sync_transactions()
- update_prices()
- update_stocks()

Connectors IN:
- ozon-api (REST API, каждые 15-30 мин)

Connectors OUT:
- order-processing (новые заказы)
- analytics (данные для аналитики)


3. Order Processing Service ⏳ TODO

Назначение: Обработка заказов с маркетплейсов

Таблицы (4):
- Order (757) - основные заказы
- OrderItem (783) - позиции заказов
- orders (0) - новая архитектура
- order_items (0) - новая архитектура

Функции:
- create_order()
- update_status()
- calculate_shipping()
- prepare_shipment()
- track_order()

Connectors IN:
- marketplace-sync (новые заказы)

Connectors OUT:
- 1c-export (заказы в 1С)
- crm (клиенты)
- analytics (продажи)


4. Analytics Service ⏳ TODO

Назначение: Аналитика продаж и прибыльности

Таблицы (4):
- analytics_order_profitability (39)
- analytics_product_profitability (0)
- OrderAnalytics (0) - дубль
- ProductAverages (0) - дубль

Функции:
- calculate_order_roi()
- calculate_product_profitability()
- aggregate_sales()
- generate_reports()

Connectors IN:
- order-processing (продажи)
- marketplace-sync (транзакции)
- pim (себестоимость)


5. Pricing Service ⏳ TODO

Назначение: Управление ценами и прайс-листами

Таблицы (8):
- PriceList (2)
- PriceListItem (1,626)
- Prices_History (2,501)
- PriceListException (0)
- ChannelPriceRules (3)
- ChannelPrices (0)
- price_rules (0) - дубль
- price_history (0) - дубль

Функции:
- import_price_list()
- calculate_channel_price()
- apply_rules()
- track_history()
- export_prices()

Connectors IN:
- price-parser (Excel прайсы)

Connectors OUT:
- marketplace-sync (обновление цен)
- pim (базовые цены)


6. Mapping Service ⏳ TODO

Назначение: Связи артикулов между системами

Таблицы (4):
- SKU_Mappings (1,702)
- pim_sku_mappings (2,050) - дубль?
- ArticleMapping (0) - старое
- ArticleMappingItem (0) - старое

Функции:
- map_sku()
- sync_mappings()
- validate_mapping()
- auto_match()

Connectors IN:
- pim (артикулы)
- marketplace-sync (SKU)


7. CRM Service ⏳ TODO

Назначение: Управление клиентами

Таблицы (3):
- CRM_Clients (3,727)
- CRM_Sales (251)
- CRM_Cold (0)

Функции:
- create_client()
- update_client()
- track_purchases()
- calculate_ltv()

Connectors IN:
- order-processing (клиенты из заказов)


8. Warehouse Service ⏳ TODO

Назначение: Управление складами

Таблицы (2):
- Warehouse (15)
- (OZON_Warehouses уже в marketplace-sync)

Функции:
- manage_warehouse()
- track_stock()
- allocate_inventory()


9. Reference Data (Shared) ⏳ TODO

Назначение: Справочники (shared между всеми сервисами)

Таблицы (9):
- Channel (6)
- Suppliers (5)
- Brands (6)
- categories (20)
- effects (46)
- attributes (26)
- DeliveryService (5)
- Features (0)
- Images (0)

Размещение: L2-DATA/reference/


10. System Tables (Platform) ⏳ TODO

Таблицы (5):
- _metadata_tables (58)
- Users (1)
- LegalEntity (3)
- PIM_Type (1)
- products (0) - дубль

Размещение: L0-ORG/platform/


Приоритеты миграции

STAGE 4: Marketplace Sync (ВЫСОКИЙ ПРИОРИТЕТ)

STAGE 5: Order Processing (ВЫСОКИЙ ПРИОРИТЕТ)

STAGE 6: Reference Data (СРЕДНИЙ ПРИОРИТЕТ)

STAGE 7: Pricing Service (СРЕДНИЙ ПРИОРИТЕТ)

STAGE 8: Analytics (НИЗКИЙ ПРИОРИТЕТ)

STAGE 9: CRM (НИЗКИЙ ПРИОРИТЕТ)

STAGE 10: Mapping (НИЗКИЙ ПРИОРИТЕТ)

STAGE 11: Warehouse (НИЗКИЙ ПРИОРИТЕТ)


Последовательность миграции

STAGE 1: L3-INFRA           ✅ ГОТОВО
STAGE 2: L2-DATA (PIM)      ✅ ГОТОВО
STAGE 3: L0-ORG (PIM)       ✅ ГОТОВО

STAGE 4: L2-DATA (Reference)            ← Сейчас
STAGE 5: L2-DATA (Marketplace schemas)  ← Сейчас
STAGE 6: L0-ORG (Marketplace-Sync)      ← Сейчас
STAGE 7: L0-ORG (Order-Processing)      ← Сейчас
STAGE 8: L2-DATA (Pricing schemas)
STAGE 9: L0-ORG (Pricing)
STAGE 10: L0-ORG (Analytics)
STAGE 11: L0-ORG (CRM)
STAGE 12: Cleanup (удалить дубли)

Использование hooks

Для автоматизации миграции создадим hooks:

  1. schema-migration-hook - автоматическое создание схем
  2. service-generator-hook - генерация сервисов по шаблону
  3. connection-validator-hook - проверка коннекторов
  4. documentation-sync-hook - синхронизация документации

План действий

  1. ✅ Создать план миграции (этот файл)
  2. ⏳ Создать Reference Data в L2-DATA
  3. ⏳ Создать Marketplace schemas в L2-DATA
  4. ⏳ Создать Marketplace-Sync service в L0-ORG
  5. ⏳ Создать Order-Processing service в L0-ORG
  6. ⏳ Обновить ARCHITECTURE_OVERVIEW.md
  7. ⏳ Создать финальный отчет

Создано: 2025-12-22
Автор: Claude Sonnet 4.5