using System; using GB5Shared.Enums; namespace GB5Shared.DTO.Draft { /// /// Maps to TDRAFT_ROWS. Used for both reading back dirty rows /// (crash recovery, promotion) and for per-row upsert payloads. /// RowData holds only business fields as JSON — GridRowDto /// infrastructure fields are stored as columns, not in JSON. /// public record DraftRowDTO { public int DraftRowId { get; init; } public int DraftId { get; init; } public string SessionGuid { get; init; } = string.Empty; public int ClientId { get; init; } public Guid RowGuid { get; init; } public Guid? ParentRowGuid { get; init; } public int ObjectTypeId { get; init; } public RowState RowState { get; init; } public int ServerRowId { get; init; } public int ParentServerId { get; init; } public int SortOrder { get; init; } /// JSON of business fields only. Never contains RowGuid/RowState/SortOrder. public string RowData { get; init; } = string.Empty; public DateTime CreatedOn { get; init; } public DateTime ModifiedOn { get; init; } } }