namespace NATS.Server.JetStream.Publish;

public sealed class PubAck
{
    public string Stream { get; init; } = string.Empty;
    public ulong Seq { get; init; }
    public bool Duplicate { get; init; }
    public int? ErrorCode { get; init; }

    // Go: JSPubAckResponse.BatchId — identifies which batch this ack belongs to.
    // Go reference: server/jetstream_batching.go (JSPubAckResponse struct)
    public string? BatchId { get; init; }

    // Go: JSPubAckResponse.BatchSize — total number of messages committed in this batch.
    // Go reference: server/jetstream_batching.go (JSPubAckResponse struct)
    public int BatchSize { get; init; }
}
