using System;
using Rugrid.Sdaid.Notation.Documents;
namespace Rugrid.Sdaid.Epas.Nts.Domain
{
/// <summary>
/// Справочник «Предельные значения зимних надбавок»: собственный справочник модуля, наполняется
/// из файла заказчика. Запись привязана к субъекту РФ (обязательно) и задаёт предельную величину
/// зимней надбавки и срок её действия. Используется в расчёте — секция методики `fuel.cf_climate_region`.
/// </summary>
public class DOC_WinterAllowance : IDomainEntityDocument, IHasStructuralLinks, IFolder<NtsDomainFolder>
{
public SdaidLink[] Links => new[]
{
Rel.Uses<DOC_Subject>(),
};
public static string _refName = "Предельные значения зимних надбавок";
public string Name => "Предельные значения зимних надбавок";
public string Description =>
@"Зимняя надбавка к норме расхода топлива по субъекту Российской Федерации: количество месяцев и срок действия, предельная величина надбавки.";
public string Version => "0.2";
public string Status => "draft";
public string[] Comments => new string[0];
public Type Entity => typeof(WinterAllowance);
}
/// <summary>Доменная сущность «Предельные значения зимних надбавок».</summary>
[DomainEntity]
public class WinterAllowance
{
/// <summary>Идентификатор записи</summary>
[DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
public Guid Id { get; set; }
/// <summary>Субъект Российской Федерации</summary>
[Relation]
[DomainField(Alias = "subject_id", RequiredOnCreate = true,
Description = "Субъект РФ, к которому относится зимняя надбавка")]
public Subject? Subject { get; set; }
/// <summary>Количество месяцев действия надбавки</summary>
[DomainField(Alias = "months", Unit = "мес.", Range = "вещественное, ≥ 0")]
public decimal? Months { get; set; }
/// <summary>Срок действия надбавки</summary>
[DomainField(Alias = "period", Description = "Например, «01.XI..31.III»")]
public string? Period { get; set; }
/// <summary>Предельная величина зимних надбавок, не более</summary>
[DomainField(Alias = "limit_percent", Unit = "%", Range = "вещественное, ≥ 0")]
public decimal? LimitPercent { get; set; }
}
}