Разбить Deal.Modules.Cards по назначению
Application разделён на Abstractions (25 интерфейсов), Models (13 доменных типов) и Dtos (CardMoveResultDto); namespace приведён к путям, using потребителей мигрированы.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
using Deal.Modules.Cards.Application.Dtos;
|
||||
using Deal.Modules.Cards.Application.Models;
|
||||
|
||||
namespace Deal.Modules.Cards.Application.Abstractions;
|
||||
|
||||
/// <summary>
|
||||
/// Политика контейнера: правила размещения карточек и жизненного цикла зоны.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Роль контейнера (не enum): пользовательская колонка-фильтр, стадия, «Неразобранное», архив/корзина,
|
||||
/// терминальная зона — каждая реализует политику по-своему. Политика отвечает на два вопроса:
|
||||
/// (1) можно ли карточке попасть сюда (правила фильтрации) и (2) что происходит с карточкой здесь
|
||||
/// (возврат, автоочистка, терминальность, напоминания).
|
||||
/// </remarks>
|
||||
public interface IContainerPolicy
|
||||
{
|
||||
/// <summary>
|
||||
/// Правила попадания карточки в контейнер (null — фильтра нет, карточки кладутся вручную/ИИ).
|
||||
/// </summary>
|
||||
public IContainerRules? Rules { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Можно ли вернуть карточку из контейнера на доску пространства (архив/корзина — да; терминальные — нет).
|
||||
/// </summary>
|
||||
public bool CanRestore { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Терминальная зона: карточка завершила жизненный путь, ручная очистка без возврата.
|
||||
/// </summary>
|
||||
public bool IsTerminal { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Автоочистка контейнера: срок хранения карточек (null — автоочистки нет).
|
||||
/// </summary>
|
||||
public TimeSpan? Retention { get; }
|
||||
}
|
||||
Reference in New Issue
Block a user