namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions;

/// <summary>
///     One durable record buffered by the continuous-historization outbox before it is written to
///     the historian. Carries the minimal payload the SQL analog live-value write path can ingest:
///     a numeric value, a quality code, and a UTC timestamp keyed by tag.
/// </summary>
/// <param name="Id">Stable identifier used to ack (remove) the entry once written. Unique per append.</param>
/// <param name="Tag">Fully-qualified historian tag name the value is recorded against.</param>
/// <param name="NumericValue">The coerced numeric sample value (the SQL write path is numeric-only).</param>
/// <param name="Quality">OPC-UA-derived quality code (e.g. 192 = Good) carried through to the historian.</param>
/// <param name="TimestampUtc">UTC source timestamp of the sample.</param>
public sealed record HistorizationOutboxEntry(
    Guid Id,
    string Tag,
    double NumericValue,
    ushort Quality,
    DateTime TimestampUtc);
