using System;
using Ban.Sdaid.Notation.Documents;
namespace Ban.Sdaid.Icd.Arch.Adr
{
/// <summary>Решение: пакет получает номер при постановке в очередь; имя файла — техническая метаданность, ключ хранения назначает сервер.</summary>
public class ADR_002_PacketIdentityAndFileKeys : IAdrDocument
{
public static string _refName = "ADR-002 «Идентичность пакета и имена файлов»";
public string Name => "ADR-002. Идентичность пакета и имена файлов изображений";
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_Context = """
## Контекст
Пока оператор собирает кадры, у будущей карты нет ни номера, ни признаков, по которым её можно было бы
назвать. Соблазн присвоить «номер карты» заранее приводит к выдумыванию сущности: номер ИК, если он вообще
есть на бумажной форме, — это распознанный атрибут, он появляется позже.
Аналогично с именами файлов: у кадра, снятого камерой, исходного имени не существует.
""";
public static string S2_Decision = """
## Решение
**Идентичность появляется в момент постановки пакета в очередь.** Тогда же сервер присваивает номер вида
`П-ГГГГММДД-NNN` — сквозная нумерация в пределах дня.
**Имя файла — метаданные, а не идентификатор.** Кадр опознаётся своим порядком в пакете.
Различаются:
- **исходное имя** — сохраняется только для файлов с диска и по ссылке; у кадров с камеры его нет,
вместо него фиксируется время съёмки;
- **ключ хранения** — назначает сервер при постановке пакета в очередь по схеме
`<номер пакета>/<NN>.<расширение>`.
В ключе нет ни вида изображения, ни страницы формы: страницу определяет обработка,
и она же меняется при переназначении. Ключ, зависящий от страницы, пришлось бы
переименовывать при каждой правке разметки — а ссылки на файл к тому времени уже разошлись.
""";
public static string S3_Rationale = """
## Обоснование
Ключ не завязывается на инвентарный номер документа, хотя соблазн есть: на момент съёмки идентификатора
может не быть — оператор вправе оставить поля пустыми, и значения извлекаются при распознавании. Иначе
файл пришлось бы переименовывать задним числом, когда ссылки на него уже разошлись. Инвентарный номер
живёт в метаданных и индексе — поиск по нему это не ломает.
""";
public static string S4_Consequences = """
## Следствия
- Интерфейс ввода не показывает «номер карты» до постановки в очередь; вместо него — счётчик сданных за смену.
- Порядковый номер `NN` в ключе отражает порядок кадра в пакете и стабилен после создания пакета.
- Соответствие кадра странице формы хранится в самом кадре, а не в имени файла:
переназначение страницы файлов не трогает.
""";
}
}