using Bit.Seeder.Data;
using Bit.Seeder.Options;
using Bit.Seeder.Pipeline;
namespace Bit.Seeder.Steps;
///
/// Initializes the deterministic random data engine on .
///
///
/// Produces no entities itself. Derives a repeatable seed from the domain string (same domain
/// always yields the same generated data). Downstream steps like
/// consume the generator for realistic usernames, cards, identities, and notes.
///
///
internal sealed class InitGeneratorStep : IStep
{
private readonly OrganizationVaultOptions _options;
private InitGeneratorStep(OrganizationVaultOptions options)
{
_options = options;
}
internal static InitGeneratorStep FromDomain(string domain, int? seed = null)
{
var options = new OrganizationVaultOptions
{
Name = domain,
Domain = domain,
Users = 0,
Seed = seed
};
return new InitGeneratorStep(options);
}
public void Execute(SeederContext context)
{
context.Generator = GeneratorContext.FromOptions(_options);
}
}