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