Биржа SEO-ссылок: миграция с Laravel на .NET
- Бизнес-модулей
- 15
- Пользователей перенесено без потерь
- 40+
- Контекста DDD
- 2
Задача
Перенести биржу размещения ссылок с Laravel + Vue на .NET + Angular, сохранив всех пользователей и балансы, и добавить модули, которых не было в оригинале.
Решение
Clean Architecture + CQRS с отдельным Identity-контекстом, внутренний кошелёк, модерация, чат по заказу и уведомления на SignalR; физическая миграция данных с проверкой.
Архитектура
Покупатели (оптимизаторы) создают проекты, выбирают площадки в каталоге и заказывают размещение ссылок; продавцы (вебмастеры) принимают заказы, публикуют ссылки и подтверждают публикацию. Деньги замораживаются во внутреннем кошельке и переходят продавцу только после подтверждения; новые площадки проходят модерацию и проверку владения; у каждого заказа есть свой чат, отзывы и рейтинг.
Регистрация и вход вынесены в отдельный Identity-модуль со своими Domain/Application/Infrastructure, своей схемой Postgres и своей историей миграций — бизнес-данные можно очистить или пересобрать без потери аккаунтов. Баланс переехал из пользователя в отдельный агрегат Wallet: деньги — это понятие маркетплейса, а не учётной записи.
Данные перенесены физически: таблицы переехали в новую схему через ALTER TABLE … SET SCHEMA, поэтому все внешние ключи продолжили работать, а 40+ существующих пользователей сохранили балансы до копейки. Обработчики команд и запросов покрыты тестами на xUnit + Moq, HTTP-конвейер проверяется через WebApplicationFactory на настоящем PostgreSQL в Testcontainers.
