namespace ZB.MOM.WW.OtOpcUa.Commons.Messages.Logging;
///
/// One line of script log output published on the cluster script-logs DPS topic.
/// Emitted by VirtualTagActor + ScriptedAlarmActor when their hosted scripts call into
/// the runtime's logging facade; consumed by ScriptLogSignalRBridge for live
/// browser tail-style viewing.
///
/// The Script row this entry came from (matches Script.ScriptId).
/// "Trace" / "Debug" / "Information" / "Warning" / "Error" / "Critical" — Serilog levels.
/// Operator-facing log message; template tokens already resolved.
/// When the script emitted the entry.
/// VirtualTag context, if logged from a virtual tag evaluation. Null otherwise.
/// ScriptedAlarm context, if logged from an alarm predicate. Null otherwise.
/// Equipment scope, if the script ran in a per-equipment context. Null for fleet-wide scripts.
public sealed record ScriptLogEntry(
string ScriptId,
string Level,
string Message,
DateTime TimestampUtc,
string? VirtualTagId,
string? AlarmId,
string? EquipmentId);