using Microsoft.EntityFrameworkCore; using PARR.DAL.Contracts; using PARR.DAL.Models.Base; using PARR.DAL.Settings; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace PARR.DAL.Models { [Table("ApplicationsInWorks")] [Index(nameof(WorkId), nameof(ApplicationId), IsUnique = true)] public class ApplicationsInWork : IBase { [Key] public Guid Id { get; set; } public DateTimeOffset DateCreated { get; set; } public DateTimeOffset? DateModified { get; set; } public Guid WorkId { get; set; } public Guid ApplicationId { get; set; } public required string TemplateDuration { get; set; } public required string ShortDescription { get; set; } //public required string FullDescription { get; set; } private string _fullDescription = string.Empty; public required string FullDescription { get { //В полное описание подставляем префикс, для дальнейшего поиска наряда return $"{_fullDescription} \r\n{PrefixSettings.Prefix}"; } set { //удаляем префикс, если он есть _fullDescription = value.Replace($"\r\n{PrefixSettings.Prefix}", ""); } } public required string Solution { get; set; } /// /// Время последнего запуска скрипта/генерации наряда /// public DateTimeOffset? LastRun { get; set; } /// /// Время следующего запуска скрипта/генерации наряда /// public DateTimeOffset NextRun { get; set; } /// /// Выполняет агент /// public bool IsAgent { get; set; } /// /// Какое-то имя которое мы передаем агенту, пока непонятно что это такое. /// public string? AgentName { get; set; } /// /// Сколько времени ожидать выполнение скрипта агентом (секунд) /// public int? AgentTimeOutSec { get; set; } /// /// Скрипт для автоматического выполнения /// public string? AgentScript { get; set; } [ForeignKey(nameof(WorkId))] public Work? Work { get; set; } [ForeignKey(nameof(ApplicationId))] public Application? Application { get; set; } public ICollection