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

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

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

namespace Rugrid.Sdaid.Epas.Nts.Domain
{
    /// <summary>
    /// Справочник «Алиас марки ТС»: альтернативное наименование (синоним) марки, используемое
    /// при распознавании марки в тексте из АИС («лада» → ВАЗ, «мерседес» → Mercedes-Benz).
    /// У одной марки может быть несколько алиасов.
    /// </summary>
    public class DOC_VehicleMarkAlias : 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(VehicleMarkAlias);
    }

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

        /// <summary>Алиас</summary>
        [DomainField(Alias = "alias", RequiredOnCreate = true)]
        public string? Alias { get; set; }

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