using Rugrid.Sdaid.Notation.Documents;
using Rugrid.Sdaid.Notation.Glossary;
using Rugrid.Sdaid.Epas.Ntr.Glossary.Terms;
namespace Rugrid.Sdaid.Epas.Ntr.Vision
{
/// <summary>
/// Видение сервиса ЭНЗС. Перенесено из ntr-01/service-enter.md; раздел «Роли пользователей» —
/// из ntr-01/user-roles/ (индексный файл user-roles.md был dataview-запросом, роли перенесены
/// дословно таблицей).
/// </summary>
public class DOC_ServiceEnterVision : IVisionDocument, IHasStructuralLinks
{
public SdaidLink[] Links => new[]
{
Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.BC_Ntr>(),
Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.EnergyProfileCollectionTaskModel.DOC_EnergyProfileCollectionTask>(),
};
public static string _refName = "ЭНЗС — эталоны и нормативы расхода ТЭР зданиями и сооружениями";
public string Name => "Сервис «Эталоны и нормативы расхода ТЭР зданиями и сооружениями» (ЭНЗС)";
public string Description =>
@"Видение сервиса ЭНЗС — точка входа в спецификацию. Собирает разделы: предметная область, сценарии использования Сервиса, пользовательский интерфейс, роли пользователей.
Назначение и цели создания Сервиса — в термине глоссария.";
public string Version => "1.0";
public string Status => "accepted";
public string[] Comments => new string[0];
public static string Aliases = """
## Алиасы
ЭНЗС, Сервис, Сервис ЭНЗС
""";
public static string ServiceDefinition = $"""
## Сервис
{GlossaryAnchors.RefTo<ServiceEnter>(ServiceEnter.Name)}
{ServiceEnter.Definition}
""";
public static string DomainArea = $"""
## Предметная область
Доменная модель Сервиса — {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Ntr.Domain.BC_Ntr>()}: обзорная
диаграмма связей сущностей и перечень доменных документов контекста.
""";
public static string UseCases = $"""
## Сценарии использования Сервиса
{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Ntr.Epics.MinimalUseCase.EPIC_MinimalUseCase>()} —
{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Ntr.Epics.MinimalUseCase.UseCases.UC_MinimalUseCase>()}.
""";
public static string Ui = $"""
## Пользовательский интерфейс:
Экраны Сервиса: {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Ntr.Ui.Pages.DOC_MainPage>()},
{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Ntr.Ui.Pages.DOC_ModelCard>()},
{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Ntr.Ui.Pages.DOC_EnergyProfileCard>()}.
Вкладки и блоки экранов описаны отдельными документами-компонентами; у каждого —
описание полей и страница прототипа Сервиса.
""";
public static string UserRoles = $"""
## Роли пользователей:
| name | aliases | Описание |
|---|---|---|
| responsible_for_collecting_eprofiles | Ответственный за сбор энергопрофилей | Создаёт {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Ntr.Domain.EnergyProfileCollectionTaskModel.DOC_EnergyProfileCollectionTask>()} |
| responsible_for_creating_eprofiles | Ответственный за формирование энергопрофилей | Создаёт всё, кроме {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Ntr.Domain.EnergyProfileCollectionTaskModel.DOC_EnergyProfileCollectionTask>()} |
| user | Пользователь | Всё читает |
""";
}
}