using System.Collections.Generic; namespace FrameworkDAL.DTO.EIPConversation { /// /// Runtime-built structured result from a CALL_API or PRESENT step. /// Passed to channel handlers so each channel can render the data appropriately: /// AppChat renders TABLE/CARD/LIST natively; WhatsApp/SMS use EIPTextFormatter for text fallback. /// public class EIPStructuredDataDTO { /// Mirrors ResponseFormatDTO.Type — TABLE | CARD | LIST. public string Type { get; set; } = "TABLE"; /// /// Column/field definitions. Either declared in ResponseFormat.Fields or auto-derived /// from the first row's properties (up to 8 fields). /// public List Fields { get; set; } = new(); /// /// Rows of data. Each entry maps field name → string value. /// CARD = one row. TABLE/LIST = multiple rows (up to MaxRows). /// public List> Rows { get; set; } = new(); /// Total rows in the source data before MaxRows truncation. public int TotalCount { get; set; } /// True when Rows.Count < TotalCount (more records exist). public bool IsTruncated { get; set; } } }