⟨/⟩ Ntr/50_Domain/ConsumptionModel/HeatingPeriod.cs

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

using System;
using Rugrid.Sdaid.Notation.Documents;

namespace Rugrid.Sdaid.Epas.Ntr.Domain.ConsumptionModel
{
    /// <summary>
    /// Доменная сущность. Перенесено дословно из ntr-01/domain/consumption-model/heating-period.md.
    /// </summary>
    public class DOC_HeatingPeriod : IDomainEntityDocument, IHasStructuralLinks, IFolder<NtrDomainFolder>
    {
        public SdaidLink[] Links => new[]
        {
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.ConsumptionModel.DOC_HeatingPeriodModel>(),
        };

        public static string _refName = "Условия отопительного периода";

        public string Name => "Условия отопительного периода";

        public string Description => "Алиасы: Условия отопительного периода. parents: [consumption-model-diagram].";

        public string Version => "1.0";
        public string Status => "accepted";
        public string[] Comments => new string[0];
        public Type Entity => typeof(HeatingPeriod);
    }

    /// <summary>
    /// Доменная сущность «Условия отопительного периода».
    /// Класс — источник структуры: таблица свойств и диаграмма связей на странице документа
    /// строятся генератором по нему. Прозу и разбор ведёт документ DOC_HeatingPeriod.
    /// </summary>
    [DomainEntity]
    public class HeatingPeriod
    {
        /// <summary>Идентификатор записи</summary>
        [DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
        public Guid Id { get; set; }

        /// <summary>ais_heating_periods_id</summary>
        [DomainField(Alias = "ais_id")]
        public Guid AisId { get; set; }

        /// <summary>Модель отопительного периода</summary>
        [Relation]
        [DomainField(Alias = "heating_period_model_id", RequiredOnCreate = true)]
        public HeatingPeriodModel? HeatingPeriodModel { get; set; }

        /// <summary>Дата начала отопительного периода</summary>
        [DomainField(Alias = "heating_period_start_date", RequiredForCalc = "Да", Calculated = "Нет")]
        public DateTime HeatingPeriodStartDate { get; set; }

        /// <summary>Дата окончания отопительного периода</summary>
        [DomainField(Alias = "heating_period_finish_date", RequiredForCalc = "Да", Calculated = "Нет")]
        public DateTime HeatingPeriodFinishDate { get; set; }

        /// <summary>Средняя температура наружного воздуха, °C</summary>
        [DomainField(Alias = "ext_air_temp_c", RequiredForCalc = "Да", Calculated = "Нет", Unit = "°C", Range = "вещественное [-70; 70]")]
        public decimal ExtAirTempC { get; set; }

        /// <summary>Продолжительность отопительного периода, сут.</summary>
        [DomainField(Alias = "heating_period_duration", RequiredForCalc = "Да", Calculated = "Да", Unit = "сут.", Range = "целое [0, 366]")]
        public int HeatingPeriodDuration { get; set; }

        /// <summary>Градусо-сутки отопительного периода, ℃·сут.</summary>
        [DomainField(Alias = "degree_days", RequiredForCalc = "Да", Calculated = "Да", Unit = "℃·сут.", Range = "вещественное ≥ [0; 10000]")]
        public decimal DegreeDays { get; set; }
    }

}