CFA: предметные команды
Решение, размещение и операция имеют разные состояния.
Feature: Системный актив не обычный выпуск
Scenario: Системный актив не обычный выпуск
Given эмитент создает инструмент
When запрос использует зарезервированную идентичность CFA-RUB
Then создание отклоняется
And существующий системный инструмент не перезаписываетсяДве границы
InstrumentsService управляет карточкой и жизненным циклом решения: создание, проверка, одобрение или отклонение, начало сбора, активация, привязка контракта и погашение. InstrumentStatus различает DRAFT, PENDING_REVIEW, APPROVED, COLLECTING, ACTIVE, SUSPENDED, REDEEMED, CANCELLED, REJECTED и FAILED. Перечень enum не разрешает произвольный переход. CfaRegistryService содержит команды выпуска, погашения и перевода, чтение обладателей и операций, проверку целостности. Метод в protobuf не означает доступность участнику: сервер проверяет право, контекст, лимиты и привязку.
Результат
Принятая команда и отправленная транзакция не означают финализированный баланс. Права акционера, гибридные права и банковские выплаты не выводятся из названия инструмента.
Источники: packages/contracts/proto/maniton/{instruments,cfa}/v1; apps/services/cfa-core/src/domains/cfa/application/use-cases. Выпуск, финализация.