Заказная судьба: исход, моменты и дельта #91
Notifications
Due Date
No due date set.
Blocks
Depends on
#92 Команда snapshot: окно, граница суток, байты и опись
ddmitry/clickstream-data-platform
#90 Проекция заказа: второй выход commerce, user_id и деньги
ddmitry/clickstream-data-platform
Reference: ddmitry/clickstream-data-platform#91
Reference in New Issue
Block a user
Part of #5.
Цель
Судьба заказа решается при рождении и обязана уложиться в окно K либо не
случиться вовсе. Тикет наполняет заказную сторону: исход, моменты и дельту
суммы (класс C). Учебный результат: расхождение — часть мира, решённая при
рождении, а не грязь, добавленная потом.
Что войдёт
оплачен и отменён. Доля неоплаченных пишется явной строкой. На выходе из
окна заказ либо
paid, либоcancelled; «навсегдаcreated» невозникает.
плюс равномерная секунда внутри часа. Моментов бросается всегда два, на
полную длину дня; у одномоментных исходов второй выбрасывается; где два по
существу — ранний считается оплатой.
заказ из одной позиции дельты не получает;
items_totalиtotalуменьшаются на её стоимость во всех слепках заказа.
хвост остаётся открытым опозданию (этап 6).
Границы
(исход и моменты), не статусы в слепке.
purchase(B), дубль (D) — этап 6 (#8).Проверок вида «отмен от 4 до 6 процентов» не заводить (правило владельца).
Кому что
Линию уместности на ревью держит Opus.
Сначала прочитать
docs/architecture/orders/fate.md— целиком, это спека тикета;docs/architecture/orders/snapshot.md— раздел «Случайность»;docs/architecture/orders/code-rules.md;Проверка
В
generator/:make lint,make typecheck,make test.слепка заказ
paidлибоcancelled.однопозиционный заказ дельты не получает.
PYTHONDONTWRITEBYTECODE=1, результат — в тело PR):правка таблицы долей исходов не меняет торговую половину дня байт в
байт и не сдвигает судьбу заказов других дней.