Files
g2s-aggregator/spec/tasks/035_generalize_tariff_code_to_string.md
T

2.2 KiB

id, title, status, created
id title status created
035 Generalize tariff_code to string identifier TODO 2026-05-30

Context

Добавляется второй провайдер доставки CSE («Карго»), который идентифицирует тариф GUID-строкой. Текущие схемы и persistence используют числовой tariff_code (int), несовместимый с CSE. Требуется обобщить идентификатор тарифа до строки для обоих провайдеров.

Goal

Перевести tariff_code на строковый тип в API-схемах и в persistence, сохранив обратное поведение CDEK (числовой код передаётся как строка).

Constraints

  • Не изменять бизнес-правила в app/domain/.
  • CDEK adapter должен формировать tariff_code как строку из своего числового кода.
  • Сохранить совместимость существующего init-payment контракта, кроме типа tariff_code.
  • Изменение типа колонки выполнить миграцией Alembic.
  • Не изменять файлы в spec/.

Acceptance criteria

  • DeliveryPrice.tariff_code: str | None.
  • SystemDataTariff.tariff_code: str с непустым значением.
  • CDEK mapper/order_mapper корректно работают со строковым tariff_code.
  • Колонка orders.tariff_code имеет строковый тип; добавлена миграция.
  • Существующие тесты обновлены под строковый tariff_code.

Definition of Done

  • Обновлены схемы DeliveryPrice и SystemDataTariff.
  • Обновлены CDEK мапперы.
  • Обновлены модель Order и миграция Alembic.
  • Затронутые тесты проходят.

Tests

  • Обновить unit-тесты CDEK мапперов и схем.
  • Проверить миграцию на тестовой БД.

Commands

  • poetry run pytest -q