using System.Text.Json.Nodes;

namespace Nexus.Api.Models;

public sealed record OpenClawStreamEventDto(
    string Id,
    string Type,
    string EventName,
    string Category,
    long? Sequence,
    long? StateVersion,
    long? PreviousSequence,
    bool SequenceGapDetected,
    bool SequenceResetDetected,
    long? MissingSequenceFrom,
    long? MissingSequenceTo,
    DateTimeOffset OccurredAt,
    JsonNode? Payload);

public sealed record OpenClawEventBatch(
    IReadOnlyList<OpenClawStreamEventDto> Events,
    string? Cursor,
    bool ReplayBoundaryMissed,
    string? OldestAvailableId,
    string? LatestAvailableId,
    DateTimeOffset ProjectedAt);
