69 lines
3.0 KiB
C#
69 lines
3.0 KiB
C#
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 (1–100) for WebP thumbnail encoding.</summary>
|
||
ThumbnailQuality,
|
||
/// <summary>Quality setting (1–100) 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
|
||
};
|
||
}
|
||
}
|