Application разделён на Abstractions (25 интерфейсов), Models (13 доменных типов) и Dtos (CardMoveResultDto); namespace приведён к путям, using потребителей мигрированы.
37 lines
1.9 KiB
C#
37 lines
1.9 KiB
C#
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; }
|
|
}
|