a5451bef76
Строки приёмочного листа 2.6 и 2.7. Клиент выбирает, каким сделкам слать: пять галочек воронки (Новая сделка, Просмотрено, В работе, Сделка, Не реализовано), по умолчанию отмечены все. Отбор применяется в ClientSmsAudienceBuilder::fromDeals() — через него идут и смета предпросмотра, и снимок получателей при запуске, поэтому число на экране и факт отправки остаются одним списком. Пустой список = «все статусы», отдельного значения «никому» нет (решение В-42): экран не даёт снять последнюю галочку и объясняет почему. Новая колонка audience_statuses (jsonb, NULL = «все») — уже созданные рассылки поведения не меняют. Права не нужны: колонка наследует права таблицы. Живой прогон поймал дефект, которого не видели тесты: запрет снять последнюю галочку не работал вообще — галочка Vuetify правит список на месте, и обычное наблюдение этого не видело, а тест присваивал новый список. Лечение: наблюдение вглубь + возврат после отрисовки; тест переписан на правку списка на месте. Тесты: 5 новых серверных + 4 на экране, ClientSms 156/156, приём лидов 17/17, фронт 1652 зелёных. Живой прогон: 5 → 4 получателя после снятия «Не реализовано»; рассылка только со статусом «Сделка» ушла ровно на номер этой сделки. Журнал схемы: v9.09 (эта работа) и v9.08 — пропущенная запись о снимке получателей, дописана задним числом.