namespace marlin.core.models; public class Job { public Guid Id { get; set; } public Guid SourceId { get; set; } public VersionControlSource Source { get; set; } public string Ref { get; set; } public string Commit { get; set; } public string CreatedReason { get; set; } public DateTime CreatedAt { get; set; } public JobStatus Status { get; set; } public ICollection StatusUpdates { get; set; } public Guid AgentId { get; set; } public Agent? Agent { get; set; } public string Recipe { get; set; } // plan } public class JobStatusUpdate { public Guid Id { get; set; } public Guid JobId { get; set; } public Job Job { get; set; } public DateTime At { get; set; } public JobStatus Status { get; set; } } public enum JobStatus { Pending, Active, Cancelled, Success, Failed }