⟨/⟩ Ntr/50_Domain/ActualConsumptionModel/EeConsumption.cs

72 строк · в начало

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; }
    }
}