using System.ComponentModel.DataAnnotations.Schema; namespace Microsoft.SelfService.Portal.Core.API.Models { public static class ConfigurationValueSourceTypes { public const string Static = "Static"; public const string ScopeProperty = "ScopeProperty"; public const string Expression = "Expression"; public const string SecretReference = "SecretReference"; } public static class ConfigurationValueScopeTypes { public const string TemplateRevision = "TemplateRevision"; public const string Environment = "Environment"; public const string Domain = "Domain"; public const string Target = "Target"; public const string DeploymentGroup = "DeploymentGroup"; public const string Deployment = "Deployment"; public const string TemplateSelection = "TemplateSelection"; } public class ConfigurationValueModel : BaseModel { [Column(Order = 1)] public Guid ConfigurationDefinitionId { get; set; } [Column(Order = 2)] public string ScopeType { get; set; } = ConfigurationValueScopeTypes.TemplateRevision; [Column(Order = 3)] public Guid ScopeId { get; set; } [Column(Order = 4)] public string ValueSourceType { get; set; } = ConfigurationValueSourceTypes.Static; [Column(Order = 5)] public string? SourcePath { get; set; } [Column(Order = 6)] public string? ValueJson { get; set; } [Column(Order = 7)] public string ValueHash { get; set; } = string.Empty; [Column(Order = 8)] public int SortOrder { get; set; } public ConfigurationDefinitionModel ConfigurationDefinition { get; set; } = null!; } }