Четыре правки HOLD-ревью PR #2732, форма таблиц не меняется:
1. Коллизия номера: 232_listings_observation_time_meaning.sql несёт открытый
PR #2742 (не main, поэтому пропущено в прошлый раз). Переименовано 232 ->
233 (git mv, история сохранена), manifest обновлён. Урок задокументирован
в шапке файла: сверять номер нужно по main И по всем открытым PR-веткам.
Перепроверено дважды (main + 5 остальных открытых веток) — 233 свободен.
2. payments_status_check дополнен пятью реальными in-flight статусами из
канонического источника (OpenAPI-спека developer.tbank.ru/schemas/eacq/
openapi.yaml, схема Confirm-2, v1.24): CHECKING, CHECKED, PROCESSING,
COMPLETING, COMPLETED. Это статусы, которые GetState/CheckOrder вернёт по
зависшему платежу — их читает реконсиляция PR-E; пропуск реального
значения был единственным опасным направлением ошибки CHECK.
3. Блок про источник статусов переписан: убрана ссылка на сторонний Go-клиент
и формулировка "enum рендерится клиентским JS" — источник истины теперь
openapi.yaml. Отдельно зафиксировано: GetState/CheckOrder объявляют Status
свободной строкой (maxLength: 20, без enum) — наш CHECK строже контракта
поставщика, осознанно.
4. Контракт 'UNKNOWN' переадресован: теперь явно на обработчик нотификаций
И задачу реконсиляции (GetState/CheckOrder, PR-E), а не только на вебхуки.
Побочно подтверждено спекой: AUTHORIZED_AND_CHARGED/RECEIPT_REGISTERED
отсутствуют (плюс maxLength:20 делает первое физически невозможным);
3DS_CHECKING/3DS_CHECKED и PREAUTHORIZING есть; ATTEMPTS_EXPIRED/PAY_CHECKING
нет; PARTIAL_REVERSED/REFUND_FAILED тоже нет в спеке — оставлены как
безвредный запас, комментарий перестал ложно утверждать обратное.
Полный pytest: 3858 passed, 10 skipped, 0 failed.
2026-08-06 19:28:44 +03:00
Renamed from tradein-mvp/backend/data/sql/232_payments.sql (Browse further)