35 lines
892 B
C#
35 lines
892 B
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Musify.Domain.Entities
|
|
{
|
|
[Table("Job")]
|
|
public class Job
|
|
{
|
|
[Key]
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
|
|
[Required]
|
|
public required JobType JobType { get; set; }
|
|
|
|
[Required]
|
|
public JobState JobState { get; set; } = JobState.Pending;
|
|
|
|
public bool IsCompleted => JobState == JobState.Completed;
|
|
|
|
public bool IsFailed => JobState == JobState.Failed;
|
|
|
|
public bool IsPending => JobState == JobState.Pending;
|
|
|
|
[Required]
|
|
public required string Payload { get; set; }
|
|
|
|
[Required]
|
|
public DateTime CreateAt { get; set; } = DateTime.UtcNow;
|
|
|
|
[Required]
|
|
public int RetryCount { get; set; } = 0;
|
|
|
|
public DateTime CompletedAt { get; set; }
|
|
}
|
|
} |