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