86 строк · в начало
using System;
using Rugrid.Sdaid.Notation.Documents;
using ClimateRegion = Rugrid.Sdaid.Epas.Ntr.Domain.Reference.ClimateRegion;
namespace Rugrid.Sdaid.Epas.Ntr.Domain.OrgObjectModel
{
/// <summary>
/// Доменная сущность. Перенесено дословно из ntr-01/domain/org-object-model/substation.md.
/// </summary>
public class DOC_Substation : IDomainEntityDocument, IHasStructuralLinks, IFolder<NtrDomainFolder>
{
public SdaidLink[] Links => new[]
{
Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.OrgObjectModel.DOC_PMES>(),
Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.Reference.DOC_ClimateRegion>(),
};
public static string _refName = "Подстанция (сущность)";
public string Name => "Подстанция (сущность)";
public string Description => "Алиасы: Подстанция (сущность), Подстанция, ПС. parents: [org-object-model].";
public string Version => "1.0";
public string Status => "accepted";
public string[] Comments => new string[0];
public Type Entity => typeof(Substation);
}
/// <summary>
/// Доменная сущность «Подстанция (сущность)».
/// Класс — источник структуры: таблица свойств и диаграмма связей на странице документа
/// строятся генератором по нему. Прозу и разбор ведёт документ DOC_Substation.
/// </summary>
[DomainEntity]
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; }
}
}