using System.Globalization;

namespace Nop.Services.Installation;

/// <summary>
/// Installation service
/// </summary>
public partial interface IInstallationService
{
    /// <summary>
    /// Install required data
    /// </summary>
    /// <param name="defaultUserEmail">Default user email</param>
    /// <param name="defaultUserPassword">Default user password</param>
    /// <param name="languagePackInfo">Language pack info</param>
    /// <param name="regionInfo">RegionInfo</param>
    /// <param name="cultureInfo">CultureInfo</param>
    /// <returns>A task that represents the asynchronous operation</returns>
    Task InstallRequiredDataAsync(string defaultUserEmail, string defaultUserPassword,
        (string languagePackDownloadLink, int languagePackProgress) languagePackInfo, RegionInfo regionInfo, CultureInfo cultureInfo);

    /// <summary>
    /// Install sample data
    /// </summary>
    /// <param name="defaultUserEmail">Default user email</param>
    /// <returns>A task that represents the asynchronous operation</returns>
    Task InstallSampleDataAsync(string defaultUserEmail);
}