mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 09:14:58 +03:00
Колонки пережили решения, которыми были отменены: - `Organization.tax_regime` и `vat_mode` — налоговый профиль организации, отменён вместе с управленческой картиной продаж (ADR-HUB-0010, отменён ADR-CHATBALLS-0041). Миграция identity/0032; - `Channel.allow_sales_attribution` и `allow_checkout_actions` — коммерческие флаги канала; ADR-CHATBALLS-0045 §4 объявил их запрещёнными безусловно, но колонки остались. Миграция channels/0008. Вместе с флагами ушёл аппарат инвариантов канала. P1-P2 были их единственным содержимым, P3-P5 сняты с сущностью Product: после удаления полей `policy_violations()` всегда возвращала бы пустой кортеж, `PolicyInvariantError` не могла быть возбуждена никогда, а `require_valid_policy()` стала бы вызовом-пустышкой. В `channels/policy.py` остались только состав полей и их отображение в payload для двух живых флагов (`allow_anonymous_sessions`, `allow_self_reported_contact`). Удалён `channels/test_policy_migration.py`: он проверял приведение данных исторической миграции channels/0005 по колонкам, которых больше нет. Отсюда 622 backend-теста вместо 624 — ровно два его метода, покрытие не потеряно. Из `identity/admin.py` колонки убраны из `list_display`: иначе админка падает проверкой admin.E108. Django выполняет `DROP COLUMN ... CASCADE` и молча уносит зависящие вьюхи, поэтому зависимости проверены до миграции: три вьюхи зависят от таблиц, но ни одна не читает эти колонки; политик RLS, constraint'ов и индексов на них нет. После применения все 10 вьюх схемы chatballs на месте, колонок в information_schema нет. Проверка: `manage.py check` и `makemigrations --check` чисты, локальная БД смигрирована, полный check.ps1 зелёный (typecheck ×2, vitest 76, CLI 9, e2e 8, backend 622). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>