⟨/⟩ 40_Arch/ADR/ADR_004_CreatorVsAssignee.cs

53 строк · в начало

using System;
using Ban.Sdaid.Notation.Documents;

namespace Ban.Sdaid.Icd.Arch.Adr
{
    /// <summary>Решение: автор ввода и исполнитель проверки — разные поля пакета.</summary>
    public class ADR_004_CreatorVsAssignee : IAdrDocument
    {
        public static string _refName = "ADR-004 «Кто ввёл и кто взял в работу»";

        public string Name => "ADR-004. Разделение «кто ввёл» и «кто взял в работу»";

        public string Description =>
            @"Почему принадлежность пакета описывается двумя разными фактами, а не одним полем «оператор».";

        public string Version => "0.1";
        public string Status => "proposed";
        public string[] Comments => new string[0];
        public Type? Supersedes => null;

        public static string S1_Problem = """
            ## Проблема

            Одно поле «оператор» смешивает два независимых факта. Пакет, введённый оператором и ещё никем не открытый,
            при таком моделировании выглядит взятым в работу — хотя проверку никто не начинал.
            """;

        public static string S2_Decision = """
            ## Решение

            У пакета два разных атрибута:

            | Атрибут | Смысл | Изменяемость |
            |---|---|---|
            | Кто ввёл | оператор, сформировавший пакет на вводе | факт истории, неизменен |
            | Кто взял в работу | исполнитель проверки; пусто — пакет свободен | назначается и снимается |

            Фильтр «только мои» отбирает по **исполнителю**: он отвечает на вопрос «что я сейчас разбираю», а не «что
            я когда-то отснял».

            Подтверждать этапы вправе только держатель пакета.
            """;

        public static string S3_Consequences = """
            ## Следствия

            - Появляются действия «Взять в работу» и «Вернуть в очередь».
            - Возврат в очередь не сбрасывает подтверждённые этапы: другой оператор продолжает с места остановки.
            - Открытым остаётся вопрос, назначается ли пакет автоматически (OQ-V-6).
            """;
    }
}