⟨/⟩ 40_Arch/ADR/ADR_003_StageConfirmationModel.cs

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

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

namespace Ban.Sdaid.Icd.Arch.Adr
{
    /// <summary>Решение: состояние пакета не хранится отдельным полем, а вычисляется по подтверждённым этапам; отзыв каскадно сбрасывает последующие.</summary>
    public class ADR_003_StageConfirmationModel : IAdrDocument
    {
        public static string _refName = "ADR-003 «Статус пакета из подтверждённых этапов»";

        public string Name => "ADR-003. Статус пакета как производная от подтверждённых этапов";

        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_Decision = """
            ## Решение

            Пакет проходит этапы плана обработки: предобработка (автоматически) → проверка файлов → проверка полей →
            проверка экземпляров → проверка экспертизы.

            **Статус пакета — производная**: он равен ближайшему неподтверждённому этапу. Отдельного поля «статус»,
            которое можно рассинхронизировать с фактическим прогрессом, не заводится.

            **Отзыв подтверждения каскадно сбрасывает все последующие этапы.**
            """;

        public static string S2_Rationale = """
            ## Обоснование

            Каскад — не перестраховка. Поля проверяются на основании отобранных файлов, экземпляр подбирается по
            проверенным полям, состав экспертизы — по ним же. Если разрешить отозвать проверку файлов, оставив
            подтверждённой проверку полей, система будет утверждать, что данные проверены, хотя проверены они были по
            другому набору изображений.

            Вычисляемый статус закрывает второй класс ошибок: невозможна ситуация «статус говорит одно, подтверждения
            показывают другое».
            """;

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

            - Фильтр очереди по этапам строится на том же вычислении, что и отображение статуса.
            - Вкладка этапа, следующего за неподтверждённым, недоступна.
            - Пакет открывается на первом этапе, требующем действий пользователя.
            """;
    }
}