2.2 KiB
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