namespace ZB.MOM.WW.ScadaBridge.Commons.Types.InboundApi;

/// <summary>
/// Defines a single parameter in an inbound API method's parameter definitions.
/// This is the deserialized, persistence-ignorant form of the JSON stored in
/// <c>ApiMethod.ParameterDefinitions</c> and describes the public API contract,
/// so it is shared by every component that reads or produces method parameter
/// definitions (Inbound API, Central UI method editor, CLI, Management Service).
/// </summary>
public class ParameterDefinition
{
    /// <summary>Gets or sets the parameter name as it must appear in the JSON request body.</summary>
    public string Name { get; set; } = string.Empty;
    /// <summary>Gets or sets the expected type (e.g. "String", "Integer", "Float", "Boolean", "Object", "List").</summary>
    public string Type { get; set; } = "String";
    /// <summary>Gets or sets whether this parameter must be present in the request body.</summary>
    public bool Required { get; set; } = true;
}
