using StellaOps.Feedser.Core.Jobs;

namespace StellaOps.Feedser.WebService.Jobs;

public sealed record JobRunResponse(
    Guid RunId,
    string Kind,
    JobRunStatus Status,
    string Trigger,
    DateTimeOffset CreatedAt,
    DateTimeOffset? StartedAt,
    DateTimeOffset? CompletedAt,
    string? Error,
    TimeSpan? Duration,
    IReadOnlyDictionary<string, object?> Parameters)
{
    public static JobRunResponse FromSnapshot(JobRunSnapshot snapshot)
        => new(
            snapshot.RunId,
            snapshot.Kind,
            snapshot.Status,
            snapshot.Trigger,
            snapshot.CreatedAt,
            snapshot.StartedAt,
            snapshot.CompletedAt,
            snapshot.Error,
            snapshot.Duration,
            snapshot.Parameters);
}
