namespace FrameworkDAL.DTO.EIPConversation
{
///
/// Configuration for a DYNAMIC_CHOICE step — builds an interactive selection
/// menu at runtime from a previously stored API response, allowing users to
/// tap/click an item rather than typing a code.
///
public class EIPDynamicChoiceConfigDTO
{
/// Context variable key that holds the API response JSON (set by a prior CALL_API step).
public string SourceKey { get; set; } = "";
///
/// Dot-notation path into the JSON to reach the item array.
/// E.g. "Body.Items", "Data.Result". Empty/null → use JSON root directly.
/// Reuses the same NavigateJsonPath helper as PRESENT/CALL_API steps.
///
public string? DataPath { get; set; }
/// JSON property name within each item to use as the button display label.
public string LabelField { get; set; } = "";
/// JSON property name within each item to use as the stored value on selection.
public string ValueField { get; set; } = "";
///
/// Context variable key to store the selected item's ValueField value.
/// Use this to route or substitute: "You selected {SelectedCode}".
///
public string? StoreSelectedKey { get; set; }
///
/// Context variable key to store the entire selected item as a JSON string.
/// Enables dot-notation in subsequent steps: {SelectedItem.ProductName}.
///
public string? StoreItemKey { get; set; }
/// Maximum number of choice buttons to present. Default 10.
public int MaxChoices { get; set; } = 10;
}
}