// ----------------------------------------------------------------------------- // BatchSnapshotResult.cs // Sprint: SPRINT_20260105_002_002_SCHEDULER_hlc_queue_chain // Task: SQC-013 - Implement BatchSnapshotService // ----------------------------------------------------------------------------- using StellaOps.HybridLogicalClock; namespace StellaOps.Scheduler.Queue.Models; /// /// Result of creating a batch snapshot. /// public sealed record BatchSnapshotResult { /// /// Unique batch snapshot identifier. /// public required Guid BatchId { get; init; } /// /// Tenant this snapshot belongs to. /// public required string TenantId { get; init; } /// /// Start of the HLC range (inclusive). /// public required HlcTimestamp RangeStart { get; init; } /// /// End of the HLC range (inclusive). /// public required HlcTimestamp RangeEnd { get; init; } /// /// Chain head link at the end of this range. /// public required byte[] HeadLink { get; init; } /// /// Number of jobs included in this snapshot. /// public required int JobCount { get; init; } /// /// When the snapshot was created. /// public required DateTimeOffset CreatedAt { get; init; } /// /// Key ID of the signer (if signed). /// public string? SignedBy { get; init; } /// /// DSSE signature (if signed). /// public byte[]? Signature { get; init; } /// /// Whether this snapshot is signed. /// public bool IsSigned => SignedBy is not null && Signature is not null; }