feat(generator): добавлена судьба заказов
- Зачем: - issue #91 требует решать исход и расхождение заказа в день его рождения. - Что: - добавлены три исхода, моменты оплаты и отмены и дельта одной позиции. - обновлены проверки повторяемости и архитектурное описание заказов. - Проверка: - cd generator && make lint && make typecheck && make test (418 passed).
This commit is contained in:
@@ -232,7 +232,7 @@ COUPONS = (
|
||||
GOAL_CART_ID = 42150001
|
||||
GOAL_PURCHASE_ID = 42150002
|
||||
|
||||
# --- Числа заказов бэкенда: деньги магазина -------------------------------
|
||||
# --- Числа заказов бэкенда: деньги магазина и судьба заказа ----------------
|
||||
|
||||
# Стоимость доставки: пары «копейки — вес». Бесплатно (самовывоз или акция),
|
||||
# обычная курьерская, срочная. Это единственные деньги заказа, которых нет
|
||||
@@ -245,3 +245,34 @@ DELIVERY_KOPECKS_WEIGHTS = (
|
||||
(29_900, 50),
|
||||
(59_000, 15),
|
||||
)
|
||||
|
||||
# Чем кончается окно изменяемости заказа: веса трёх исходов, в порядке
|
||||
# `orders.OrderOutcome`. «Создан» навсегда мир не допускает — из окна заказ
|
||||
# выходит либо оплаченным, либо отменённым. Доли черновые: калибровка —
|
||||
# пересборка эталонного мира, этап 7.
|
||||
ORDER_OUTCOME_WEIGHTS = (
|
||||
95, # оплачен
|
||||
3, # оплачен, потом отменён
|
||||
2, # отменён неоплаченным
|
||||
)
|
||||
|
||||
# Когда внутри окна случается момент заказа — оплата или отмена: веса часов
|
||||
# от 0 до 143, по часу от рождения заказа. Читается по парам «сколько часов —
|
||||
# с каким весом»; часов в сумме ровно 144 — самый узкий край окна, у заказа,
|
||||
# рождённого в конце суток (docs/architecture/orders/fate.md). Почти всё в
|
||||
# первые сутки, дальше затухание до края:
|
||||
# профиль гаснет, поэтому обрыв окна в данных не виден. Веса черновые, как и
|
||||
# доли исходов.
|
||||
ORDER_MOMENT_HOUR_WEIGHTS = tuple(
|
||||
weight
|
||||
for hours, weight in ((6, 100), (18, 60), (24, 25), (48, 8), (48, 2))
|
||||
for _ in range(hours)
|
||||
)
|
||||
|
||||
# Доля заказов, у которых со склада вычеркнули позицию: товара не оказалось в
|
||||
# наличии, и заказ приезжает на строку короче клиентской корзины. Бросается
|
||||
# доля на все заказы дня, а достаётся дельта не всем — однопозиционному заказу
|
||||
# терять нечего, и таких больше половины, — поэтому в сверке наблюдаемая доля
|
||||
# выходит вдвое-втрое ниже броска, около ориентира мастер-спеки в 1–2%. Число
|
||||
# черновое: калибровка — пересборка эталонного мира, этап 7.
|
||||
ORDER_DELTA_PERCENT = 4
|
||||
|
||||
Reference in New Issue
Block a user