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; } }