using System.ComponentModel.DataAnnotations.Schema; namespace Microsoft.SelfService.Portal.Core.API.Models { public class TemplateRevisionModel : BaseModel { [Column(Order = 1)] public Guid TemplateVersionId { get; set; } [Column(Order = 2)] public int RevisionNumber { get; set; } [Column(Order = 3)] public string JsonData { get; set; } = "{}"; [Column(Order = 4)] public string JsonHash { get; set; } = string.Empty; [Column(Order = 5)] public string SchemaVersion { get; set; } = "1.0"; [Column(Order = 6)] public bool IsCurrent { get; set; } [Column(Order = 7)] public bool IsPublished { get; set; } [Column(Order = 8)] public DateTime? PublishedAt { get; set; } [Column(Order = 9)] public string? PublishedBy { get; set; } public TemplateVersionModel TemplateVersion { get; set; } = null!; public ICollection ConfigurationDefinitions { get; set; } = new List(); public ICollection DeploymentTemplateSelections { get; set; } = new List(); public ICollection Deployments { get; set; } = new List(); public void SetJsonData(string jsonData) { JsonData = string.IsNullOrWhiteSpace(jsonData) ? "{}" : jsonData; JsonHash = TemplateVersionModel.ComputeSha256(JsonData); } } }