using PARR.Common.Domain; using PARR.Constants; using PARR.DAL.Models.Base; using PARR.DAL.Models.Base.History; using PARR.DAL.Models.Base.History.Base; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace PARR.DAL.Models { [Table("TemplateHistories")] public class TemplateHistory : IBase, ITemplateGeneralProps, IHistoryInitiator, IHistoryTable { [Key] public Guid Id { get; set; } public Guid ParentId { get; set; } public DateTimeOffset DateAddedToHistory { get; set; } public string? InitiatorIp { get; set; } public ParrComponentsEnum? InitiatorParrComponentId { get; set; } public string? InitiatorComment { get; set; } [NotMapped] public DateTimeOffset DateCreated { get; set; } public DateTimeOffset? DateModified { get; set; } public required string Name { get; set; } public bool IsActiveTemplate { get; set; } public bool IsActiveSchedule { get; set; } public DateTimeOffset? LastRun { get; set; } public DateTimeOffset NextRun { get; set; } public TemplateStatusTypeEnum StatusTypeId { get; set; } = TemplateStatusTypeEnum.Used; [ForeignKey(nameof(ParentId))] public Template? Template { get; set; } } }