using System;
using Rugrid.Sdaid.Notation.Documents;
namespace Rugrid.Sdaid.Epas.Ntr.Domain.Reference
{
/// <summary>
/// Доменная сущность. Перенесено дословно из ntr-01/domain/reference/solar-radiaion-by-direction.md.
/// </summary>
public class DOC_SolarRadiaionByDirection : IDomainEntityDocument, IFolder<NtrDomainFolder>
{
public static string _refName = "Суммарная солнечная радиация на вертикальную поверхность по сторонам света";
public string Name => "Суммарная солнечная радиация на вертикальную поверхность по сторонам света";
public string Description => "Алиасы: Суммарная солнечная радиация на вертикальную поверхность по сторонам света. parents: [consumption-model].";
public string Version => "1.0";
public string Status => "changed";
public string[] Comments => new[]
{
"2026-08-31, фаза 5 миграции (сверка спеки с реализацией): в таблицу свойств добавлены атрибуты, которые есть в БД, но не были описаны в спеке.",
};
public Type Entity => typeof(SolarRadiaionByDirection);
}
/// <summary>
/// Доменная сущность «Суммарная солнечная радиация на вертикальную поверхность по сторонам света».
/// Класс — источник структуры: таблица свойств и диаграмма связей на странице документа
/// строятся генератором по нему. Прозу и разбор ведёт документ DOC_SolarRadiaionByDirection.
/// </summary>
[DomainEntity]
public class SolarRadiaionByDirection
{
/// <summary>Идентификатор записи</summary>
[DomainField(Alias = "id", RequiredOnCreate = true, Immutable = true)]
public Guid Id { get; set; }
/// <summary>ИД объекта в АИС</summary>
[DomainField(Alias = "ais_id", Immutable = true)]
public Guid AisId { 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 = "direction", RequiredOnCreate = true)]
public string? Direction { get; set; }
/// <summary>Месяц</summary>
[DomainField(Alias = "month", RequiredOnCreate = true)]
public string? Month { get; set; }
/// <summary>Номер меяца</summary>
[DomainField(Alias = "month_number", RequiredOnCreate = true, Range = "[1..12]")]
public int MonthNumber { get; set; }
/// <summary>Широта в градусах</summary>
[DomainField(Alias = "grad", Range = "[-90..90]")]
public int Grad { get; set; }
/// <summary>Удельная солнечная радиация, МДж/м²</summary>
[DomainField(Alias = "ssr")]
public int Ssr { get; set; }
}
}