using System;
using Rugrid.Sdaid.Notation.Documents;
namespace Rugrid.Sdaid.Epas.Ntr.Domain.Reference
{
/// <summary>
/// Справочник учётных периодов, загружаемый из АИС ОИА ПЭО.
/// </summary>
public class DOC_Period : IDomainEntityDocument, IFolder<NtrDomainFolder>
{
public static string _refName = "Учётный период (сущность)";
public string Name => "Учётный период (сущность)";
public string Description => "Период, за который ведётся учёт потребления ТЭР.";
public string Version => "0.1";
public string Status => "draft";
public string[] Comments => new string[0];
public Type Entity => typeof(Period);
public static string Body = """
Справочник загружается из АИС ОИА ПЭО и в Сервисе не редактируется. Тип периода задаёт его
продолжительность, номер — порядковый номер периода внутри года: для месячного периода это
номер месяца.
""";
}
/// <summary>
/// Доменная сущность «Учётный период (сущность)».
/// Класс — источник структуры: таблица свойств и диаграмма связей на странице документа
/// строятся генератором по нему. Прозу ведёт документ DOC_Period.
/// </summary>
[DomainEntity]
public class Period
{
/// <summary>Идентификатор записи</summary>
[DomainField(Alias = "id", RequiredOnCreate = true, Immutable = 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 = "name", RequiredOnCreate = true)]
public string? Name { get; set; }
/// <summary>Код</summary>
[DomainField(Alias = "code", Description = "Уникальный строковый код записи справочника")]
public string? Code { get; set; }
/// <summary>Номер периода</summary>
[DomainField(Alias = "number", RequiredOnCreate = true, Description = "Порядковый номер периода внутри года")]
public int Number { get; set; }
/// <summary>Тип периода</summary>
[DomainField(Alias = "type", RequiredOnCreate = true, Description = "Продолжительность периода; учёт потребления ТЭР ведётся периодами типа `month`")]
public string? Type { get; set; }
}
}