Разбить Deal.Modules.Cards по назначению

Application разделён на Abstractions (25 интерфейсов), Models (13
доменных типов) и Dtos (CardMoveResultDto); namespace приведён к путям,
using потребителей мигрированы.
This commit is contained in:
Rustam Khalimov
2026-09-11 13:16:57 +03:00
parent 8a7d7f2a7a
commit 31c434ed93
65 changed files with 231 additions and 66 deletions
@@ -0,0 +1,28 @@
using Deal.Modules.Cards.Application.Abstractions;
using Deal.Modules.Cards.Application.Dtos;
namespace Deal.Modules.Cards.Application.Models;
/// <summary>
/// Контекст перехода карточки: кто инициировал и что делать с обучением.
/// </summary>
/// <remarks>Переход — единый механизм (<see cref="ICardMover"/>); контекст отличает действие пользователя
/// (обучать ML), системы (автоархив/очистка) и ИИ/ML (классификация). Reason — для возвратов из отсева
/// и ручных исключений, чтобы ML/ИИ учились на решении.</remarks>
public sealed record TransitionContext
{
/// <summary>
/// Инициатор перехода: <c>user</c>|<c>system</c>|<c>ai</c>|<c>ml</c>.
/// </summary>
public required string Actor { get; init; }
/// <summary>
/// Причина (возврат из отсева, ручная отмена); null — нет.
/// </summary>
public string? Reason { get; init; }
/// <summary>
/// Обучать ML на этом действии (действия пользователя — да; системные — нет).
/// </summary>
public bool Learn { get; init; }
}