using Ban.Sdaid.Notation.Documents;
using Ban.Sdaid.Icd.ChangeRequests;
namespace Ban.Sdaid.Icd.Domain.Cards.Template
{
/// <summary>
/// Перечень обязательных атрибутов по видам информационной карты — единственное место,
/// где он живёт. Наполняет признак обязательности у вхождения атрибута в состав вида.
/// </summary>
public class RequiredAttributes : ISdaidDocument, IHasStructuralLinks
{
public static string _refName = "обязательные атрибуты по видам ИК";
public string Name => "Обязательные атрибуты по видам ИК";
public string Description =>
@"Какие атрибуты обязательны для каждого вида документа. Перечень задаёт заказчик; в системе он хранится признаком обязательности у вхождения атрибута в состав вида.";
public string Version => "0.1";
public string Status => "draft";
public string[] Comments => new[]
{
"2026-08-26. Заведён по запросу на изменение «Обязательные поля ИК»; заполнен перечень для книги.",
};
public SdaidLink[] Links => new[]
{
Rel.Uses<DOC_CR_2026_08_25_MandatoryCardFields>(),
Rel.Uses<DocumentKindSpec>(),
};
public static string S1_Purpose = $"""
## Назначение
Перечень обязательных атрибутов описан здесь и больше нигде: требования, страницы
и сценарии ссылаются на этот документ, а не пересказывают список.
Перечень — **данные, а не код**. В системе он живёт признаком обязательности
у вхождения атрибута в состав вида
({nameof(Ban.Sdaid.Icd.Domain.Cards.Template.DocumentKindAttributeSpec)}); этот документ
говорит, каким должно быть наполнение справочника, и почему именно таким.
Обязательность задаётся **по виду документа**. Перечни разных видов совпадают частично
и независимы: атрибут, обязательный для книги, не обязан быть обязательным для рукописи.
""";
public static string S2_Book = """
## Издание — книга
Перечень передан заказчиком 2026-08-26. Девять полей бумажного бланка и место хранения,
которого на бланке нет.
| Атрибут | Где на карте | Если значения нет |
|---|---|---|
| Место хранения | реквизит карты, на бланке отсутствует; выбирается из справочника | значение по умолчанию из профиля |
| Шифр | лист 1, описание документального памятника | — |
| Инвентарный номер | лист 1, описание документального памятника | — |
| Дата | лист 1, описание документального памятника | — |
| Заглавие | лист 1, описание документального памятника | — |
| Место издания | лист 1, описание документального памятника | на бланке пишут «Б.м.» |
| Издательство | лист 1, описание документального памятника | на бланке пишут «Б.и.» |
| Год издания | лист 1, описание документального памятника | — |
| Количество страниц | лист 1, описание документального памятника | — |
| Формат | лист 1, описание документального памятника | — |
«Б.м.» и «Б.и.» вписывает пользователь, следуя правилу заполнения бланка. Сервис заглушку
не подставляет и не разбирает — принимает как обычное значение. Пустое поле означает
«значение не указано»: обязательное поле считается незаполненным.
""";
public static string S3_Pending = """
## Рукопись, графика и остальные виды
Перечни не переданы. Заказчик сообщил, что для рукописей и рисунков метки свои, но
большей частью совпадут с книжными, и пришлёт их отдельно.
До этого момента обязательных атрибутов у этих видов нет: считать за них книжный
перечень нельзя — у рукописи нет ни издательства, ни года издания, ни места издания.
""";
}
}