using Deal.Modules.Cards.Application.Abstractions; namespace Deal.Modules.Cards.Application.Models; /// /// Контекст перехода карточки: кто инициировал и что делать с обучением. /// /// Переход — единый механизм (); контекст отличает действие пользователя /// (обучать ML), системы (автоархив/очистка) и ИИ/ML (классификация). Reason — для возвратов из отсева /// и ручных исключений, чтобы ML/ИИ учились на решении. public sealed record TransitionContext { /// /// Инициатор перехода: user|system|ai|ml. /// public required string Actor { get; init; } /// /// Причина (возврат из отсева, ручная отмена); null — нет. /// public string? Reason { get; init; } /// /// Обучать ML на этом действии (действия пользователя — да; системные — нет). /// public bool Learn { get; init; } }