using Microsoft.EntityFrameworkCore; using PARR.Domain.Constants; using PARR.Domain.Entities.Base; using PARR.Domain.Entities.Job; using PARR.Domain.Entities.JobGroupEntities; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace PARR.Domain.Entities.Unit { /// /// Справочник полей ЭК (компонентный состав, ответствтвенные, любые поля) /// [Table("Fields", Schema = DatabaseSchemas.Unit)] [Comment("Справочник полей ЭК")] [Index(nameof(AihitName))] [Index(nameof(EsppName))] public class UnitField : IBaseEntity { [Key] public Guid Id { get; set; } public DateTimeOffset DateCreated { get; set; } [NotMapped] public DateTimeOffset? DateModified { get; set; } /// /// Имя поля в АИХ ИТ, заполняется при синхронизации /// public required string AihitName { get; set; } /// /// Название поля в ЕСПП, возможно в дальнейшем для синхронизации /// public string? EsppName { get; set; } /// /// Название поля для отображения в ГУИ /// public string? DisplayName { get; set; } /// /// Код поля, используется в GUI /// public string? Code { get; set; } /// /// Могут ли принимать несколько значений. Из АИХ ИТ приходят значения разделённые запятой /// public bool? IsMultipleValue { get; set; } public ICollection UnitInValues { get; set; } = new HashSet(); public ICollection UnitFieldValues { get; set; } = new HashSet(); public ICollection RelationshipFilters { get; set; } = new HashSet(); public ICollection JobGroupRelationshipFilters { get; set; } = new HashSet(); /// /// JobGroup которые группируются по этому полю (!!!отключено каскадное удаление!!!) /// public ICollection JobGroupWithGrouping { get; set; } = new HashSet(); public ICollection JobFieldFilters { get; set; } = new HashSet(); public ICollection JobGroupFieldFilters { get; set; } = new HashSet(); } }