namespace FrameworkDAL.DTO.EIPConversation
{
///
/// Declares a single parameter to be included in an EIP capability/action HTTP call.
///
/// Used in EIPApiConfig.Parameters to build body, query string, header, or path
/// values from a mix of fixed literals, engine-managed context values, and
/// user-supplied input collected during INPUT steps.
///
/// Source semantics (both resolve from context.Variables at runtime):
/// FIXED — literal Value is used as-is
/// CONTEXT — value comes from context.Variables[Key] (set by engine: login, prior API response)
/// INPUT — value comes from context.Variables[Key] (collected from user during INPUT steps)
///
/// In semantics:
/// body — included in the JSON request body (default)
/// query — appended to the URL as ?key=value
/// header — added as a request header
/// path — substituted in PathTemplate (e.g., "/Orders/{OrderId}")
///
public class EIPParamDefinitionDTO
{
public string Name { get; set; } = "";
/// "body" | "query" | "header" | "path"
public string In { get; set; } = "body";
/// "FIXED" | "CONTEXT" | "INPUT"
public string Source { get; set; } = "FIXED";
/// Literal value used when Source=FIXED.
public string? Value { get; set; }
/// Variable name in context.Variables used when Source=CONTEXT or INPUT.
public string? Key { get; set; }
/// Fallback value when Key is not found in context.Variables.
public string? DefaultValue { get; set; }
}
}