Files
MilkyShots/Butter/Settings/Settings.cs

69 lines
3.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace Butter.Settings;
/// <summary>
/// Defines the available application settings keys.
/// </summary>
public enum Settings {
/// <summary>Enable or disable self user registration.</summary>
UserRegistrationEnabled,
/// <summary>Enable or disable folder scanning.</summary>
FolderScanEnabled,
/// <summary>Interval in minutes for folder scanning.</summary>
FolderScanInterval,
/// <summary>Enable or disable file upload.</summary>
FileUploadEnabled,
/// <summary>Maximum file size for uploads in bytes.</summary>
FileUploadMaxSize,
/// <summary>Path to store thumbnails.</summary>
ThumbnailPath,
/// <summary>Path to store previews.</summary>
PreviewPath,
/// <summary>Longest side size for thumbnails.</summary>
ThumbnailSize,
/// <summary>Longest side size for previews.</summary>
PreviewSize,
/// <summary>Maximum number of concurrent jobs.</summary>
MaxConcurrentJobs,
/// <summary>Number of days to keep completed/failed/canceled jobs.</summary>
JobRetentionDays,
/// <summary>Number of assets to process per sub-job batch.</summary>
JobBatchSize,
/// <summary>Quality setting (1100) for WebP thumbnail encoding.</summary>
ThumbnailQuality,
/// <summary>Quality setting (1100) for WebP preview encoding.</summary>
PreviewQuality,
/// <summary>User ID used for scanner-created asset attribution.</summary>
SystemUploaderId
}
/// <summary>
/// Provides extension methods for the <see cref="Settings"/> enum.
/// </summary>
public static class SettingsExtensions {
/// <summary>
/// Converts a <see cref="Settings"/> value to its human-readable display string.
/// </summary>
/// <param name="setting">The setting to convert.</param>
/// <returns>A human-readable string representation of the setting.</returns>
public static string AsString(this Settings setting) {
return setting switch {
Settings.UserRegistrationEnabled => "User Registration Enabled",
Settings.FolderScanEnabled => "Folder Scan Enabled",
Settings.FolderScanInterval => "Folder Scan Interval",
Settings.FileUploadEnabled => "File Upload Enabled",
Settings.FileUploadMaxSize => "File Upload MaxSize",
Settings.ThumbnailPath => "Thumbnail Path",
Settings.PreviewPath => "Preview Path",
Settings.ThumbnailSize => "Thumbnail Size",
Settings.PreviewSize => "Preview Size",
Settings.MaxConcurrentJobs => "Max Concurrent Jobs",
Settings.JobRetentionDays => "Job Retention Days",
Settings.JobBatchSize => "Job Batch Size",
Settings.ThumbnailQuality => "Thumbnail Quality",
Settings.PreviewQuality => "Preview Quality",
Settings.SystemUploaderId => "System Uploader Id",
_ => setting.ToString() // Fallback to the enum name
};
}
}