⟨/⟩ Nts/50_Domain/Reference/VehicleModel.cs

53 строк · в начало

using System;
using Rugrid.Sdaid.Notation.Documents;

namespace Rugrid.Sdaid.Epas.Nts.Domain
{
    /// <summary>
    /// Справочник «Модели ТС»: модель привязана к марке (обязательная ссылка). Справочник
    /// модуля; используется справочником «Марка, модель и модификация ТС».
    /// </summary>
    public class DOC_VehicleModel : IDomainEntityDocument, IHasStructuralLinks, IFolder<NtsDomainFolder>
    {
        public SdaidLink[] Links => new[]
        {
            Rel.Uses<DOC_VehicleMark>(),
        };

        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(VehicleModel);
    }

    /// <summary>Доменная сущность «Модель ТС».</summary>
    [DomainEntity]
    public class VehicleModel
    {
        /// <summary>Идентификатор записи</summary>
        [DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
        public Guid Id { get; set; }

        /// <summary>Код</summary>
        [DomainField(Alias = "code")]
        public string? Code { get; set; }

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

        /// <summary>Марка ТС</summary>
        [Relation]
        [DomainField(Alias = "vehicle_mark_id", RequiredOnCreate = true,
            Description = "Модель обязательно относится к марке")]
        public VehicleMark? VehicleMark { get; set; }
    }
}