7.1 KiB
MODIFIED Requirements
Requirement: Ledger entries preserve broker operation meaning
Система MUST представлять одну upstream-операцию одной записью журнала и MUST передавать её timestamp, тип операции, категорию, описание, доступные идентификаторы инструмента, доступную presentation metadata инструмента, денежную выплату, количество, цену, НКД и комиссию. Денежные поля MUST сохранять исходную валюту и точное десятичное значение.
Scenario: Отображение купонной выплаты
- WHEN T-Bank возвращает исполненную купонную операцию с выплатой и данными инструмента
- THEN запись журнала определяет её как income и передаёт исходную сумму выплаты, валюту и данные инструмента
Scenario: Отображение комиссии сделки без синтетической записи
- WHEN T-Bank возвращает исполненную сделку, содержащую выплату и комиссию
- THEN журнал содержит одну запись сделки с комиссией в качестве её детали
Scenario: Отображение движения бумаг без денег
- WHEN T-Bank возвращает исполненную операцию, изменяющую состав инструментов, но без денежной выплаты
- THEN запись журнала передаёт доступное количество и не содержит искусственной денежной выплаты с нулевым значением
Scenario: Доступна визуальная идентичность инструмента
- WHEN для инструмента исполненной операции доступна presentation metadata бренда
- THEN запись журнала передаёт её вместе с доступными идентификаторами инструмента, не меняя остальные сведения операции
Requirement: Account overview includes recent ledger events
Обзор счёта MUST показывать пять последних исполненных записей журнала этого счёта и действие перехода к его полному журналу. Каждая показанная запись MUST иметь ту же визуальную идентичность инструмента и семантику денежного движения, что и запись полного журнала. Неуспешный или пустой запрос последних записей MUST оставаться локальным состоянием блока последних событий и MUST NOT заменять успешно отображённый обзор Portfolio.
Scenario: Отображение последних событий
- WHEN загружается обзор счёта и его журнал содержит исполненные операции
- THEN обзор показывает не более пяти последних записей и ссылку на полный журнал
Scenario: Последние записи недоступны
- WHEN обзор счёта успешно загружается, но запрос последних записей завершается ошибкой
- THEN обзор Portfolio остаётся доступным, а блок последних событий отображает собственное состояние восстановления
Scenario: Последняя запись не содержит visual metadata инструмента
- WHEN одна из последних записей не имеет доступной presentation metadata инструмента
- THEN обзор показывает для неё понятный текстовый fallback и сохраняет дату, тип, инструмент и денежное изменение записи доступными для чтения
Requirement: Full ledger presents compact rows
Страница полного журнала MUST показывать для каждой записи дату, тип операции, инструмент и денежное изменение в исходной валюте в компактной структурированной строке. При доступной presentation metadata инструмента строка MUST показывать его визуальную идентичность; при её отсутствии MUST использовать понятный текстовый fallback. Для положительной денежной выплаты строка MUST явно обозначать поступление знаком, текстовой семантикой и положительным цветом; для отрицательной — списание знаком, текстовой семантикой и отрицательным цветом. Страница MUST обозначать записи без движения денег нейтрально и MUST NOT показывать цену или количество.
Scenario: Отображение записи только с инструментом
- WHEN полный журнал отображает запись без денежной выплаты
- THEN страница определяет её как запись без движения денег
Scenario: Отображение поступления
- WHEN полный журнал отображает запись с положительной денежной выплатой
- THEN строка явно показывает поступление и его денежное изменение в исходной валюте, не полагаясь только на цвет
Scenario: Отображение списания
- WHEN полный журнал отображает запись с отрицательной денежной выплатой
- THEN строка явно показывает списание и его денежное изменение в исходной валюте, не полагаясь только на цвет
Scenario: Отсутствует visual metadata инструмента
- WHEN полный журнал отображает запись без доступной presentation metadata инструмента
- THEN строка показывает понятный текстовый fallback без подмены или сокрытия доступных данных инструмента