using Microsoft.EntityFrameworkCore; using PARR.DAL.Context; using PARR.DAL.Models.Base; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace PARR.DAL.Models.Job { [Table("Groups", Schema = DataContextSettings.Job)] [Comment("Таблица описания групп работ, для реализации зонтиков")] public class JobGroup : IBase { [Key] public Guid Id { get; set; } public DateTimeOffset DateCreated { get; set; } public DateTimeOffset? DateModified { get; set; } /// /// Наименование работ для интерфеса в ПАРР /// public required string GroupName { get; set; } /// /// Связана ли работа с групповыми ЭК(зонтами) /// public bool? IsUmbrella { get; set; } /// /// Поле Короткое описания шаблона АСУ ЕСПП /// public required string ShortDescription { get; set; } /// /// Поле Подробное описания шаблона АСУ ЕСПП /// public required string FullDescription { get; set; } /// /// Поле Решение описания шаблона АСУ ЕСПП /// public required string Solution { get; set; } /// /// Поле Длительность описания шаблона АСУ ЕСПП /// public required string TemplateDuration { get; set; } /// /// TemplateDuration в формате TimeSpan /// public TimeSpan? TemplateDurationTimeSpan { get { try { //ЕСПП кривоногие, они почему-то таймспан пишут так "7 00:00:00", а правильно так: "7:00:00:00" var durationWithTimeSpanFormat = TemplateDuration.Replace(" ", ":"); return TimeSpan.Parse(durationWithTimeSpanFormat); } catch { return null; } } } /// /// Дата начала работ или дата для отсчёта периода следующего выполнения /// public DateTimeOffset ReferenceDate { get; set; } /// /// Включить автораспределение /// public bool IsAutoDistributionEnabled { get; set; } /// /// Выполняет агент /// public bool IsAgent { get; set; } /// /// Какое-то имя которое мы передаем агенту, пока непонятно что это такое. /// public string? AgentName { get; set; } /// /// Сколько времени ожидать выполнение скрипта агентом (секунд) /// public int? AgentTimeOutSec { get; set; } /// /// Скрипт для автоматического выполнения /// public string? AgentScript { get; set; } public ICollection Jobs { get; set; } = new HashSet(); public ICollection EsppSchValues { get; set; } = new HashSet(); } }