Подстанция (сущность)

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

Алиасы: Подстанция (сущность), Подстанция, ПС. parents: [org-object-model].

⟨/⟩ Исходник

Связи

classDiagram
    direction LR
    class Substation {
        +Guid id
        +Guid ais_id
        +String pmes_id
        +String name
        +String latitude
        +String longitude
        +ClimateRegion climate_region_id
        +DateTime start_date
        +DateTime finish_date
    }
    class ClimateRegion
    Substation "0..1" --> "1" ClimateRegion : climate_region_id

Структура

НаименованиеАтрибутТипОбязательно для созданияДиапазон / форматНеизменяемостьОписание
Идентификатор записиidGuidДаДа
ИД объекта в АИСais_idGuidНетДаИД объекта в АИС ОИА ПЭО
Вышестоящее подразделениеpmes_idStringДа
НаименованиеnameStringДа
ШиротаlatitudeStringДа$"{градусы}°{минуты}'{секунды}"{сторона света}" - градусы: целое, 0-90, - минуты: целое, 0-59, - cекунды: целое, 0-59 - сторона света: {S, N}. пример: 55°5'47"N
ДолготаlongitudeStringДа$"{градусы}°{минуты}'{секунды}"{сторона света}" - градусы: целое, 0-180, - минуты: целое, 0-59, - cекунды: целое, 0-59 - сторона света: {E, W}. пример: 82°56'25"E
Климатический районclimate_region_idClimateRegionНет
Дата начала эксплуатацииstart_dateDateTimeНетДата [01.01.1850; 01.01.2099]
Дата окончания эксплуатацииfinish_dateDateTimeНетДата [01.01.1850; 01.01.2099]

Исходник

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

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

        /// <summary>Вышестоящее подразделение</summary>
        [DomainField(Alias = "pmes_id", RequiredOnCreate = true)]
        public string? PmesId { get; set; }

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

        /// <summary>Широта</summary>
        [DomainField(
            Alias = "latitude",
            RequiredOnCreate = true,
            Range = "$\"{градусы}°{минуты}'{секунды}\"{сторона света}\" - градусы: целое, 0-90, - минуты: целое, 0-59, - cекунды: целое, 0-59 - сторона света: {S, N}. пример: 55°5'47\"N"
        )]
        public string? Latitude { get; set; }

        /// <summary>Долгота</summary>
        [DomainField(
            Alias = "longitude",
            RequiredOnCreate = true,
            Range = "$\"{градусы}°{минуты}'{секунды}\"{сторона света}\" - градусы: целое, 0-180, - минуты: целое, 0-59, - cекунды: целое, 0-59 - сторона света: {E, W}. пример: 82°56'25\"E"
        )]
        public string? Longitude { get; set; }

        /// <summary>Климатический район</summary>
        [Relation]
        [DomainField(Alias = "climate_region_id")]
        public ClimateRegion? ClimateRegion { get; set; }

        /// <summary>Дата начала эксплуатации</summary>
        [DomainField(Alias = "start_date", Range = "Дата [01.01.1850; 01.01.2099]")]
        public DateTime StartDate { get; set; }

        /// <summary>Дата окончания эксплуатации</summary>
        [DomainField(Alias = "finish_date", Range = "Дата [01.01.1850; 01.01.2099]")]
        public DateTime FinishDate { get; set; }
    }