Files
Cleanuparr/code/Data/Models/Configuration/QueueCleaner/QueueCleanerConfig.cs
2025-06-15 21:15:50 +03:00

37 lines
1.1 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Common.Configuration;
namespace Data.Models.Configuration.QueueCleaner;
public sealed record QueueCleanerConfig : IJobConfig
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; init; } = Guid.NewGuid();
public bool Enabled { get; init; }
public string CronExpression { get; init; } = "0 0/5 * * * ?";
/// <summary>
/// Indicates whether to use the CronExpression directly or convert from a user-friendly schedule
/// </summary>
public bool UseAdvancedScheduling { get; init; } = false;
public FailedImportConfig FailedImport { get; init; } = new();
public StalledConfig Stalled { get; init; } = new();
public SlowConfig Slow { get; init; } = new();
public ContentBlockerConfig ContentBlocker { get; init; } = new();
public void Validate()
{
FailedImport.Validate();
Stalled.Validate();
Slow.Validate();
ContentBlocker.Validate();
}
}