using Microsoft.EntityFrameworkCore;
using PARR.Domain.Constants;
using PARR.Domain.Entities.Base;
using PARR.Domain.Entities.JobGroupEntities;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace PARR.Domain.Entities.Job
{
[Table("Jobs", Schema = DatabaseSchemas.Job)]
[Comment("Таблица видов работ")]
public class Job : IBaseEntity
{
[Key]
public Guid Id { get; set; }
public DateTimeOffset DateCreated { get; set; }
public DateTimeOffset? DateModified { get; set; }
///
/// Наименование работ для интерфеса в ПАРР
///
public required string Name { get; set; }
///
/// Наименование работ для поля Работа в шаблоне АСУ ЕСПП, может быть динамическое
///
public required string WorkName { get; set; }
///
/// Минимальное значение дочерних или родительских связей группового ЭК
///
public int? MinValueRelationships { get; set; }
///
/// Максимальное значение дочерних или родительских связей группового ЭК
///
public int? MaxValueRelationships { get; set; }
///
/// Для подсчёта связей групового ЭК использовать родительсике или дочерние связи
///
///
/// true - диапазон связей относится к родительским связям
/// false, null - диапазон относится к дочерним связям
///
public bool? IsParentRelationships { get; set; }
///
/// Маска для динамического формирования имени шаблона
///
public required string TemplateNameMask { get; set; }
///
/// Маска для динамического формирования рабочей группы исполнителей шаблона
///
/// Зона ответственности
///
public required string ResponseAreaMask { get; set; }
public Guid TnkId { get; set; }
public Guid GroupId { get; set; }
[ForeignKey(nameof(GroupId))]
public JobGroup? Group { get; set; }
[ForeignKey(nameof(TnkId))]
public Tnk? Tnk { get; set; }
public ICollection UnitFilters { get; set; } = new HashSet();
public ICollection Templates { get; set; } = new HashSet();
public JobAutoControl? AutoControl { get; set; }
}
}