⟨/⟩ Ntr/50_Domain/Reference/GlazingKind.cs

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

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

namespace Rugrid.Sdaid.Epas.Ntr.Domain.Reference
{
    /// <summary>
    /// Доменная сущность. Перенесено дословно из ntr-01/domain/reference/glazing-kind.md.
    /// </summary>
    public class DOC_GlazingKind : IDomainEntityDocument, IFolder<NtrDomainFolder>
    {
        public static string _refName = "Вид остекления";

        public string Name => "Вид остекления";

        public string Description => "Алиасы: Вид остекления. parents: [windows].";

        public string Version => "1.0";
        public string Status => "changed";

        public string[] Comments => new[]
        {
            "2026-08-31, фаза 5 миграции (сверка спеки с реализацией): в таблицу свойств добавлены атрибуты, которые есть в БД, но не были описаны в спеке.",
        };
        public Type Entity => typeof(GlazingKind);
    }

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

        /// <summary>ИД объекта в АИС</summary>
        [DomainField(Alias = "ais_id", RequiredOnCreate = true, Description = "ИД объекта в АИС ОИА ПЭО", Immutable = true)]
        public Guid AisId { get; set; }

        /// <summary>Дата и время изменения в АИС ОИА ПЭО</summary>
        [DomainField(
            Alias = "ais_modified",
            RequiredOnCreate = true,
            Description = "Служебное поле. Момент последнего изменения записи в АИС ОИА ПЭО"
        )]
        public DateTime AisModified { get; set; }

        /// <summary>Наименование</summary>
        [DomainField(Alias = "name", RequiredOnCreate = true)]
        public string? Name { get; set; }

        /// <summary>Код</summary>
        [DomainField(Alias = "code", RequiredOnCreate = true, Description = "Уникальный строковый код записи справочника")]
        public string? Code { get; set; }

        /// <summary>Сопротивление теплопередаче, м²·°С/Вт</summary>
        [DomainField(Alias = "thermal_resistance", Unit = "`м²·°С/Вт`", Range = "Вещественное (0; 10]")]
        public decimal ThermalResistance { get; set; }

        /// <summary>Коэффициент затенения светового проёма</summary>
        [DomainField(Alias = "shading_coefficient", Range = "Вещественное (0; 1]")]
        public decimal ShadingCoefficient { get; set; }

        /// <summary>Коэффициент проникания солнечной радиации</summary>
        [DomainField(Alias = "solar_heat_gain_coefficient", Range = "Вещественное (0; 1]")]
        public decimal SolarHeatGainCoefficient { get; set; }

        /// <summary>Воздухопроницаемость, кг/(м²·ч)</summary>
        [DomainField(Alias = "air_permeability", Unit = "`кг/(м²·ч)`", Range = "Вещественное [0; 100]")]
        public decimal AirPermeability { get; set; }

        /// <summary>Коэффициент эмиссии</summary>
        [DomainField(Alias = "emission_coefficient", Range = "Вещественное (0; 1]")]
        public decimal EmissionCoefficient { get; set; }

        /// <summary>Источник мастер-данных</summary>
        [DomainField(Alias = "source_system_alias", RequiredOnCreate = true, Default = "\"service_ntr\"")]
        public string? SourceSystemAlias { get; set; }
    }

}