using System.Text.Json.Serialization;
using eSuite.Core.CustomFields;
using eSuite.Core.Miscellaneous;

namespace e_suite.API.Common.models.@base;

public abstract class CustomFieldBase
{
    [JsonPropertyName("fieldType")]
    public FieldType FieldType { get; set; }

    [JsonPropertyName("refElementId")]
    public GeneralIdRef? RefElementId { get; set; }

    [JsonPropertyName("name")]
    public string Name { get; set; } = string.Empty;

    [JsonPropertyName("defaultValue")]
    public string DefaultValue { get; set; } = string.Empty;

    [JsonPropertyName("minEntries")]
    public long MinEntries { get; set; }

    [JsonPropertyName("maxEntries")]
    public long? MaxEntries { get; set; }

    [JsonPropertyName("params")]
    public string Parameters { get; set; } = string.Empty;
}
