using System.Text; using System.Text.Json; public record QsofaEvaluationCursor(DateTimeOffset EvaluatedAt, Guid Id) { public string Encode() { var json = JsonSerializer.Serialize(this); return Convert.ToBase64String(Encoding.UTF8.GetBytes(json)); } public static QsofaEvaluationCursor? Decode(string? encoded) { if (string.IsNullOrEmpty(encoded)) return null; try { var json = Encoding.UTF8.GetString(Convert.FromBase64String(encoded)); return JsonSerializer.Deserialize(json); } catch { return null; } } }