66 lines
1.8 KiB
C#
66 lines
1.8 KiB
C#
using SQLVision.Core.Enums;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace SQLVision.Core.Models;
|
|
|
|
public class ScriptParameter
|
|
{
|
|
[JsonPropertyName("name")]
|
|
public string Name { get; set; } = string.Empty;
|
|
|
|
[JsonPropertyName("type")]
|
|
public ParameterType Type { get; set; } = ParameterType.String;
|
|
|
|
[JsonPropertyName("displayName")]
|
|
public string? DisplayName { get; set; }
|
|
|
|
[JsonPropertyName("description")]
|
|
public string? Description { get; set; }
|
|
|
|
[JsonPropertyName("defaultValue")]
|
|
public object? DefaultValue { get; set; }
|
|
|
|
[JsonPropertyName("isRequired")]
|
|
public bool IsRequired { get; set; } = false;
|
|
|
|
[JsonPropertyName("order")]
|
|
public int Order { get; set; } = 0;
|
|
|
|
[JsonPropertyName("group")]
|
|
public string? Group { get; set; }
|
|
|
|
[JsonPropertyName("tableQuery")]
|
|
public string? TableQuery { get; set; }
|
|
|
|
[JsonPropertyName("valueMember")]
|
|
public string ValueMember { get; set; } = "Id";
|
|
|
|
[JsonPropertyName("displayMember")]
|
|
public string DisplayMember { get; set; } = "Name";
|
|
|
|
[JsonPropertyName("dependsOn")]
|
|
public string? DependsOn { get; set; }
|
|
|
|
[JsonPropertyName("dependencyValues")]
|
|
public Dictionary<string, object>? DependencyValues { get; set; }
|
|
|
|
[JsonPropertyName("validationRules")]
|
|
public Dictionary<string, object>? ValidationRules { get; set; }
|
|
|
|
[JsonPropertyName("watermark")]
|
|
public string? Watermark { get; set; }
|
|
|
|
[JsonPropertyName("icon")]
|
|
public string? Icon { get; set; }
|
|
|
|
[JsonIgnore]
|
|
public string EffectiveDisplayName => DisplayName ?? Name;
|
|
|
|
public bool Validate(object? value)
|
|
{
|
|
if (IsRequired && (value == null || string.IsNullOrWhiteSpace(value.ToString())))
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
} |