using Microsoft.EntityFrameworkCore;
using PARR.DAL.Context;
using PARR.DAL.Models.Base;
using PARR.DAL.Models.Job;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.DAL.Models.Unit
{
///
/// Справочник полей ЭК (компонентный состав, ответствтвенные, любые поля)
///
[Table("Fields", Schema = DataContextSettings.Unit)]
[Comment("Справочник полей ЭК")]
[Index(nameof(AihitName))]
[Index(nameof(EsppName))]
public class UnitField : IBase
{
[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 Units { get; set; } = new HashSet();
public ICollection UnitInValues { get; set; } = new HashSet();
public ICollection UnitFieldValues { get; set; } = new HashSet();
public ICollection RelationshipFilters { get; set; } = new HashSet();
///
/// JobGroup которые группируются по этому полю (!!!отключено каскадное удаление!!!)
///
public ICollection JobGroupWithGrouping { get; set; } = new HashSet();
}
}