-- +goose Up
-- Сколько сущностей с собственным `id` разбор этой доставки пропустил: без
-- `id`, с непомерно длинным `id`, с неразбираемой меткой времени или не
-- разобравшихся как объект.
--
-- Заводится не ради отчётности. Ретеншен сырого архива решает «что потеряется,
-- если тело удалить», ПО БАЗЕ, и до этой колонки получал ответ «терять нечего»
-- ровно там, где потеряна тренировка с маршрутом: сущность в витрину не попала,
-- список непокрытых секций пуст, статус `parsed`. Лог здесь не годится — он
-- ротируется, а решение об удалении тела необратимо.
--
-- БЕЗ DEFAULT намеренно: NULL означает «этот разбор пропусков не считал», и это
-- НЕ то же, что ноль. Подстановка нуля объявила бы весь исторический журнал
-- проверенным — то самое ложное «терять нечего», ради которого колонка и
-- заводится, только теперь с видом измерения. Читатель, принимающий по
-- счётчику необратимое решение, обязан трактовать NULL как «не удалять».
--
-- Data-миграции при этом нет, и это сказано числом: прогон всех 118 тел живого
-- архива через разбор даёт `noID=0 noTime=0 malformed=0`, то есть корпус
-- пропусков не производил и пересворачивать нечего. «Ничего не потерял по
-- замеру» и «проверено этим разбором» — разные утверждения, поэтому колонка
-- всё равно остаётся NULL до первой пересвёртки.
--
-- Статус разбора от пропуска сущности не зависит: `partial` определён списком
-- непокрытых секций, и второй источник истины для него завёл бы расхождение
-- читателей, которое учёт частичного разбора запрещает явно.
ALTER TABLE delivery ADD COLUMN skipped_entities INTEGER;

-- +goose Down
ALTER TABLE delivery DROP COLUMN skipped_entities;
