namespace FrameworkDAL.DTO.DirectAction
{
///
/// Admin CRUD DTO for MDIRECTACTIONDETAIL (one button/link within an action group).
/// Note: unlike most master tables in this schema, MDIRECTACTIONDETAIL has NO
/// Version/Status/audit columns (confirmed against the live DDL) — deletes here are a real
/// hard DELETE, not the usual STATUS=0 soft-delete.
/// Distinct from the runtime-only DirectActionDetailDTO used by GenericApiDirectActionHandler's
/// lookup.
///
public class DirectActionDetailAdminDTO
{
public int DirectActionDetailId { get; set; }
/// FK -> MDIRECTACTION.DIRECTACTIONID (the parent action group).
public int DirectActionId { get; set; }
public short Slno { get; set; } = 1;
public string ActionCode { get; set; } = string.Empty;
public string ActionLabel { get; set; } = string.Empty;
public string? EmailPlaceholder { get; set; }
public string? ButtonPayloadPrefix { get; set; }
public string ApiEndpoint { get; set; } = string.Empty;
public string HttpMethod { get; set; } = "POST";
public string PayloadTemplate { get; set; } = string.Empty;
/// 0 = direct API call (no form), 1 = show remarks form before executing.
public byte NeedsInput { get; set; }
/// FK -> MEIPFLOWDEFINITION.FLOWDEFINITIONID when NeedsInput=1 and a conversational
/// flow is preferred over the plain remarks form; -1 = not used.
public int FlowId { get; set; } = -1;
}
}