2025-05-31 19:26:02 +02:00
|
|
|
using System;
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
2025-11-05 20:50:25 +01:00
|
|
|
namespace DiunaBI.Domain.Entities;
|
2025-05-31 19:26:02 +02:00
|
|
|
|
2025-06-06 22:15:23 +02:00
|
|
|
public class QueueJob
|
2025-05-31 19:26:02 +02:00
|
|
|
{
|
2025-06-06 22:15:23 +02:00
|
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
|
|
|
public Guid LayerId { get; set; }
|
|
|
|
|
public string LayerName { get; set; } = string.Empty;
|
|
|
|
|
public string PluginName { get; set; } = string.Empty;
|
|
|
|
|
public JobType JobType { get; set; }
|
|
|
|
|
public int Priority { get; set; } = 0; // 0 = highest priority
|
|
|
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
|
public int RetryCount { get; set; } = 0;
|
|
|
|
|
public int MaxRetries { get; set; } = 5;
|
|
|
|
|
public JobStatus Status { get; set; } = JobStatus.Pending;
|
|
|
|
|
public string? LastError { get; set; }
|
|
|
|
|
public DateTime? LastAttemptAt { get; set; }
|
|
|
|
|
public DateTime? CompletedAt { get; set; }
|
|
|
|
|
public Guid CreatedById { get; set; }
|
|
|
|
|
public DateTime CreatedAtUtc { get; set; } = DateTime.UtcNow;
|
|
|
|
|
public Guid ModifiedById { get; set; }
|
|
|
|
|
public DateTime ModifiedAtUtc { get; set; } = DateTime.UtcNow;
|
2025-05-31 19:26:02 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public enum JobType
|
|
|
|
|
{
|
2025-06-06 22:15:23 +02:00
|
|
|
Import = 0,
|
|
|
|
|
Process = 1
|
2025-05-31 19:26:02 +02:00
|
|
|
}
|
|
|
|
|
|
2025-06-06 22:15:23 +02:00
|
|
|
public enum JobStatus
|
2025-05-31 19:26:02 +02:00
|
|
|
{
|
2025-06-06 22:15:23 +02:00
|
|
|
Pending,
|
|
|
|
|
Running,
|
|
|
|
|
Completed,
|
|
|
|
|
Failed,
|
|
|
|
|
Retrying
|
2025-05-31 19:26:02 +02:00
|
|
|
}
|