using Ban.Sdaid.Notation.Documents;
using Ban.Sdaid.Icd.Ui.Pages;
namespace Ban.Sdaid.Icd.Requirements
{
/// <summary>Ввод и предварительная обработка изображений ИК — задача 1 ТЗ.</summary>
public class FR_001_ImageInput : IFunctionalRequirementDocument
{
public static string _refName = "FR-001 «Ввод изображений»";
public string Name => "FR-001. Ввод изображений информационных карт";
public string Description =>
@"Сервис должен обеспечивать ввод изображений информационных карт тремя способами — съёмкой камерой, загрузкой файла с диска и загрузкой по ссылке — с последующей автоматической предобработкой изображения.";
public string Version => "0.2";
public string Status => "draft";
public string[] Comments => new string[0];
public static string S1_Requirement = """
## Требование
Оператор должен иметь возможность добавить изображение информационной карты:
- **съёмкой камерой** рабочего места с живым превью кадра;
- **загрузкой файла с диска** — перетаскиванием либо выбором, в том числе нескольких файлов сразу;
- **загрузкой по ссылке** (URL).
Поддерживаемые форматы файлов: JPG, PNG, TIFF, PDF, TXT.
Кадры снимаются **подряд, без плана ввода**: каждому новому кадру присваивается очередной
номер, порядок правится перетаскиванием. Что за карта вводится и какой странице формы
соответствует кадр, определяет Сервис при обработке.
Число кадров в пакете ограничено настройкой; по умолчанию — пять. Кадр сверх предела
не добавляется, пользователю показывается сообщение о достигнутом пределе.
Ввод карты завершается одной командой — «Сохранить и перейти к следующей»; пакет
поступает в очередь обработки автоматически, отдельного действия постановки не требуется.
""";
public static string S2_Preprocessing = """
## Предварительная обработка
Каждое добавленное изображение проходит автоматическую предобработку: выравнивание, обрезка фона,
устранение искажений геометрии. Пользователю доступны для сверки обе версии кадра — **оригинал**
и **обработанное** изображение; переключатель между ними — в окне просмотра кадра при проверке.
""";
public static string S9_Prototype = $"""
## Прототип интерфейса
Требование реализуется на экране {SdaidAnchors.RefTo<InputDataPage>()}: способ добавления
кадра выбирается переключателем над рабочей областью, снятые кадры накапливаются лентой
в правой колонке.
{SdaidHtml.LinkTo<InputDataPage>("input-card.html", "Открыть прототип в новой вкладке")}
{SdaidHtml.IframeOf<InputDataPage>("input-card.html", 720)}
""";
}
}