using EgwCoreLib.Lux.Data.DbModel.Utils;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
//
// This is here so CodeMaid doesn't reorganize this document
//
namespace EgwCoreLib.Lux.Data.DbModel.Job
{
///
/// Definizione macro dei Cicli di Lavoro / Job
///
[Table("task_job")]
public class JobTaskModel
{
///
/// ID del record
///
[Key]
public int JobID { get; set; }
///
/// Descrizione del ciclo di lavoro
///
public string Description { get; set; } = "";
///
/// Indice (ordinale) visualizzazione
///
public int Index { get; set; } = 0;
///
/// Indica protezione cancellazione
///
public bool Lock { get; set; } = false;
///
/// Abilitato o meno x selezione
///
public bool Enabled { get; set; } = true;
///
/// Many-to-many with Tags
///
public virtual ICollection TagNav { get; set; } = new List();
///
/// Navigation verso JobStep
///
public virtual ICollection JobStepNav { get; set; } = new List();
///
/// Numero Step compresi
///
[NotMapped]
public int NumChild
{
get => JobStepNav?.Count ?? 0;
}
///
/// Numero Tags compresi
///
[NotMapped]
public int NumTags
{
get => TagNav?.Count ?? 0;
}
///
/// Elenco Tags come List
///
[NotMapped]
public List TagList
{
get => TagNav.Select(x => x.CodTag).ToList() ?? new List();
}
///
/// Elenco ResourcesId come List
///
[NotMapped]
public List ResourcesList
{
get => JobStepNav.Select(x => x.ResourceID).ToList() ?? new List();
}
}
}