Files
Deal/src/core/Deal.Modules.Cards/Application/Abstractions/IContainerPolicy.cs
T
Rustam Khalimov 31c434ed93 Разбить Deal.Modules.Cards по назначению
Application разделён на Abstractions (25 интерфейсов), Models (13
доменных типов) и Dtos (CardMoveResultDto); namespace приведён к путям,
using потребителей мигрированы.
2026-09-11 13:16:57 +03:00

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; }
}