using System.Globalization;
namespace Jellyfin.Server.ServerSetupApp;
///
/// A curated vocabulary of generic, non-identifying descriptions of what the server is doing during startup.
/// These are shown in the always-visible header of the startup UI to unauthenticated clients, so every
/// value must stay generic and must never contain server specific details (paths, names, plugin or migration ids, counts of items, etc.).
///
public static class StartupActivity
{
/// The default state before any work has been reported.
public const string Starting = "Starting up";
/// Validating that the configured storage locations are usable.
public const string CheckingStorage = "Checking storage";
/// Bringing up the migration subsystem and running early startup checks.
public const string Initializing = "Initializing server";
/// Preparing the system for migrations (e.g. taking safety backups).
public const string PreparingMigrations = "Preparing migrations";
/// Restoring from a backup.
public const string RestoringBackup = "Restoring backup";
/// Bringing up core services and plugins.
public const string InitializingServices = "Initializing services";
/// Running the final startup tasks.
public const string FinishingStartup = "Finishing startup";
///
/// Builds a generic "Running migration X of Y" description. Only the numeric position and total are exposed.
///
/// The 1-based index of the migration currently running.
/// The total number of migrations in this batch.
/// A generic progress description.
public static string Migration(int current, int total)
=> string.Format(CultureInfo.InvariantCulture, "Running migration {0} of {1}", current, total);
}