namespace Deal.Modules.Kanban.Application.Models;
///
/// Результат ручной переклассификации карточки — параметр ICardStore.ApplyReclassificationAsync.
///
/// Id карточки (c_...).
/// Новая колонка (доска либо inbox — страховку ContainerAccepts уже применил вызывающий).
/// Флаг «новое».
/// Признак найма/заказа после переклассификации.
/// Тип подтверждён классификатором (иначе — маркерная гипотеза).
/// Новый заголовок (очищенный, ≤140).
/// Новый блок «О заявке» (≤2000).
/// Новый стек (полная замена массива).
/// Бюджет по исходнику; null — суммы нет (поля очищаются).
/// Бюджет в целевой валюте; null — конверсии нет (поля очищаются).
/// «Быстрый» контакт (значение основного контакта).
/// Квалифицированные контакты (полная замена).
/// Совпавшие критерии правил доски (для inbox — пусто).
public sealed record CardReclassificationDto(
string CardId,
string Col,
bool IsNew,
bool IsVacancy,
bool IsVacancyKnown,
string Title,
string Summary,
IReadOnlyList Stack,
CardBudgetDto? Budget,
CardBudgetDto? Converted,
string Contact,
IReadOnlyList Contacts,
IReadOnlyList MatchHits);