Освещение (сущность)

Доменная сущность Версия: 1.0 accepted

Алиасы: Освещение (сущность). parents: [lighting-model-diagram].

⟨/⟩ Исходник

Связи

classDiagram
    direction LR
    class Lighting {
        +Guid id
        +Guid ais_id
        +String name
        +LightingModel lighting_model_id
        +Boolean is_internal_lighting
        +Int32 lamp_per_illuminator
        +Int32 lighting_amount
        +Decimal lamp_power_wt
        +Decimal operating_time_hour_per_day
        +Decimal operating_time_days_per_year
        +Decimal ee_receiver_power_kw
        +Decimal ee_receiver_energy_kwh
    }
    class LightingModel
    Lighting "1" --> "1" LightingModel : lighting_model_id

Структура

НаименованиеАтрибутТипОбязательно для созданияТребуется для расчётаВычисляемый, методикаЕИДиапазон / форматНеизменяемость
Идентификатор записиidGuidДаUUIDДа
ais_lightings_idais_idGuidНетДа
НаименованиеnameStringНетДа, вычисляется при чтении / на UI; не хранится. Формула: $"{lighting_type} ({Количество ламп в светильнике, шт} * {Количество светильников, шт.} * {Мощность одной лампы, Вт})", где lighting_type: "Внутреннее" — если is_internal_lighting=true, иначе "Наружное"
Модель освещенияlighting_model_idLightingModelДаДа
Внутреннее освещениеis_internal_lightingBooleanНет
Количество ламп в светильнике, штlamp_per_illuminatorInt32НетДа> 0
Количество светильников, шт.lighting_amountInt32НетДа> 0
Мощность одной лампы, Втlamp_power_wtDecimalНетДа> 0
Время работы в сутках, час. в сут.operating_time_hour_per_dayDecimalНетДа(0; 24]
Время работы в году, дней в годoperating_time_days_per_yearDecimalНетДа(0; 366]
Установленная мощность, кВтee_receiver_power_kwDecimalНетДакВт> 0
Годовое потребление, кВт·чee_receiver_energy_kwhDecimalНетДакВт·ч> 0

Исходник

    public class Lighting
    {
        /// <summary>Идентификатор записи</summary>
        [DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
        public Guid Id { get; set; }

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

        /// <summary>Наименование</summary>
        [DomainField(
            Alias = "name",
            Calculated = "Да, вычисляется при чтении / на UI; не хранится. Формула: $\"{lighting_type} ({Количество ламп в светильнике, шт} * {Количество светильников, шт.} * {Мощность одной лампы, Вт})\", где lighting_type: \"Внутреннее\" — если is_internal_lighting=true, иначе \"Наружное\""
        )]
        public string? Name { get; set; }

        /// <summary>Модель освещения</summary>
        [Relation]
        [DomainField(Alias = "lighting_model_id", RequiredOnCreate = true, Immutable = true)]
        public LightingModel? LightingModel { get; set; }

        /// <summary>Внутреннее освещение</summary>
        [DomainField(Alias = "is_internal_lighting")]
        public bool IsInternalLighting { get; set; }

        /// <summary>Количество ламп в светильнике, шт</summary>
        [DomainField(Alias = "lamp_per_illuminator", RequiredForCalc = "Да", Range = "> 0")]
        public int LampPerIlluminator { get; set; }

        /// <summary>Количество светильников, шт.</summary>
        [DomainField(Alias = "lighting_amount", RequiredForCalc = "Да", Range = "> 0")]
        public int LightingAmount { get; set; }

        /// <summary>Мощность одной лампы, Вт</summary>
        [DomainField(Alias = "lamp_power_wt", RequiredForCalc = "Да", Range = "> 0")]
        public decimal LampPowerWt { get; set; }

        /// <summary>Время работы в сутках, час. в сут.</summary>
        [DomainField(Alias = "operating_time_hour_per_day", RequiredForCalc = "Да", Range = "(0; 24]")]
        public decimal OperatingTimeHourPerDay { get; set; }

        /// <summary>Время работы в году, дней в год</summary>
        [DomainField(Alias = "operating_time_days_per_year", RequiredForCalc = "Да", Range = "(0; 366]")]
        public decimal OperatingTimeDaysPerYear { get; set; }

        /// <summary>Установленная мощность, кВт</summary>
        [DomainField(Alias = "ee_receiver_power_kw", Calculated = "Да", Unit = "кВт", Range = "> 0")]
        public decimal EeReceiverPowerKw { get; set; }

        /// <summary>Годовое потребление, кВт·ч</summary>
        [DomainField(Alias = "ee_receiver_energy_kwh", Calculated = "Да", Unit = "кВт·ч", Range = "> 0")]
        public decimal EeReceiverEnergyKwh { get; set; }
    }