Prepared Seperation of Database components for future multi provider support

This commit is contained in:
JPVenson
2025-01-26 20:45:28 +00:00
parent b318f33599
commit aa811eb1e3
220 changed files with 742 additions and 320 deletions

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using MediaBrowser.Common.Configuration;
namespace Jellyfin.Server.Implementations.DatabaseConfiguration;
/// <summary>
/// Factory for constructing a database configuration.
/// </summary>
public class DatabaseConfigurationFactory : IConfigurationFactory
{
/// <inheritdoc/>
public IEnumerable<ConfigurationStore> GetConfigurations()
{
yield return new DatabaseConfigurationStore();
}
}

View File

@@ -0,0 +1,14 @@
using System;
namespace Jellyfin.Server.Implementations.DatabaseConfiguration;
/// <summary>
/// Options to configure jellyfins managed database.
/// </summary>
public class DatabaseConfigurationOptions
{
/// <summary>
/// Gets or Sets the type of database jellyfin should use.
/// </summary>
public required string DatabaseType { get; set; }
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using MediaBrowser.Common.Configuration;
namespace Jellyfin.Server.Implementations.DatabaseConfiguration;
/// <summary>
/// A configuration that stores database related settings.
/// </summary>
public class DatabaseConfigurationStore : ConfigurationStore
{
/// <summary>
/// The name of the configuration in the storage.
/// </summary>
public const string StoreKey = "database";
/// <summary>
/// Initializes a new instance of the <see cref="DatabaseConfigurationStore"/> class.
/// </summary>
public DatabaseConfigurationStore()
{
ConfigurationType = typeof(DatabaseConfigurationOptions);
Key = StoreKey;
}
}