using System;
using Rugrid.Sdaid.Notation.Documents;
using Building = Rugrid.Sdaid.Epas.Ntr.Domain.BuildingModel.Building;
using Period = Rugrid.Sdaid.Epas.Ntr.Domain.Reference.Period;
namespace Rugrid.Sdaid.Epas.Ntr.Domain.ActualConsumptionModel
{
/// <summary>
/// Фактическое потребление электрической энергии зданием за учётный период.
/// </summary>
public class DOC_EeConsumption : IDomainEntityDocument, IHasStructuralLinks, IFolder<NtrDomainFolder>
{
public SdaidLink[] Links => new[]
{
Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.BuildingModel.DOC_Building>(),
Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.Reference.DOC_Period>(),
};
public static string _refName = "Фактическое потребление ЭЭ";
public string Name => "Фактическое потребление ЭЭ";
public string Description =>
"Фактическое потребление электрической энергии зданием за учётный период, тыс. кВт·ч.";
public string Version => "0.1";
public string Status => "draft";
public string[] Comments => new string[0];
public Type Entity => typeof(EeConsumption);
public static string Body = """
Запись создаётся загрузкой из АИС ОИА ПЭО и в Сервисе не редактируется. Значение — сумма
потребления точек учёта электрической энергии здания за период.
Запись уникальна в пределах здания, года и учётного периода.
""";
}
/// <summary>
/// Доменная сущность «Фактическое потребление ЭЭ».
/// Класс — источник структуры: таблица свойств и диаграмма связей на странице документа
/// строятся генератором по нему. Прозу ведёт документ DOC_EeConsumption.
/// </summary>
[DomainEntity]
public class EeConsumption
{
/// <summary>Идентификатор записи</summary>
[DomainField(Alias = "id", RequiredOnCreate = true, Immutable = true)]
public Guid Id { get; set; }
/// <summary>Здание</summary>
[Relation]
[DomainField(Alias = "build_id", RequiredOnCreate = true, Immutable = true)]
public Building? Building { get; set; }
/// <summary>Год</summary>
[DomainField(Alias = "year", RequiredOnCreate = true, Immutable = true, Description = "Календарный год, к которому относится учётный период")]
public int Year { get; set; }
/// <summary>Учётный период</summary>
[Relation]
[DomainField(Alias = "period_id", RequiredOnCreate = true, Immutable = true)]
public Period? Period { get; set; }
/// <summary>Потребление, тыс. кВт·ч</summary>
[DomainField(Alias = "consumption", Unit = "`тыс. кВт·ч`", Description = "Незаданное значение означает, что в источнике потребление за этот период не задано")]
public decimal? Consumption { get; set; }
}
}