using Bit.Core.Entities;
using Bit.Seeder.Services;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.DependencyInjection;
namespace Bit.Seeder.Pipeline;
///
/// Convenience extension methods for resolving common services from .
/// Minimizes churn in step implementations when transitioning from direct property access to DI.
///
internal static class SeederContextExtensions
{
internal static IPasswordHasher GetPasswordHasher(this SeederContext context) =>
context.Services.GetRequiredService>();
internal static IManglerService GetMangler(this SeederContext context) =>
context.Services.GetRequiredService();
internal static ISeedReader GetSeedReader(this SeederContext context) =>
context.Services.GetRequiredService();
internal static SeederSettings GetSettings(this SeederContext context) =>
context.Services.GetRequiredService();
internal static string GetPassword(this SeederContext context) =>
context.GetSettings().Password ?? Factories.UserSeeder.DefaultPassword;
}
///
/// Runtime settings for a seeding operation, registered in DI.
///
internal sealed record SeederSettings(string? Password = null);