using MongoDB.Entities; namespace PrivaPub.Models.Jobs { public class Job : Entity { public JobKind Kind { get; set; } public JobState State { get; set; } public string Payload { get; set; } public string Host { get; set; } public string DedupeKey { get; set; } public int Attempts { get; set; } public DateTime RunAt { get; set; } = DateTime.UtcNow; public DateTime? LeasedUntil { get; set; } public string LeaseOwner { get; set; } public string LastError { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? FinishedAt { get; set; } } public enum JobKind { Deliver, ProcessInbox, FetchAncestors, DescribeInstance, PollRefresh, PollClose } public enum JobState { Pending, Running, Done, Dead } }