⟨/⟩ Ntr/50_Domain/ActualConsumptionModel/TeConsumption.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_TeConsumption : 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(TeConsumption);

        public static string Body = """
            Запись создаётся загрузкой из АИС ОИА ПЭО и в Сервисе не редактируется. Значение — сумма
            потребления точек учёта тепловой энергии здания за период.

            Запись уникальна в пределах здания, года и учётного периода.
            """;
    }

    /// <summary>
    /// Доменная сущность «Фактическое потребление ТЭ».
    /// Класс — источник структуры: таблица свойств и диаграмма связей на странице документа
    /// строятся генератором по нему. Прозу ведёт документ DOC_TeConsumption.
    /// </summary>
    [DomainEntity]
    public class TeConsumption
    {
        /// <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; }
    }
}