namespace Bit.Seeder.Options;
///
/// Options for seeding a standalone individual user with optional personal vault data.
///
public record IndividualUserOptions
{
///
/// Optional first name. When both FirstName and LastName are set,
/// the email is deterministic: "{first}.{last}@individual.example".
/// When null, Faker generates a random name (requires mangling for isolation).
///
public string? FirstName { get; init; }
///
/// Optional last name. Must be provided together with FirstName.
///
public string? LastName { get; init; }
///
/// Optional email.
///
public string? Email { get; init; }
///
/// Whether the user has a premium subscription (enables 1 GB storage).
///
public bool Premium { get; init; }
///
/// When true, generates ~75 personal ciphers across 5 named folders.
///
public bool GenerateVault { get; init; }
///
/// Password for the seeded account. Defaults to "asdfasdfasdf" if not specified.
///
public string? Password { get; init; }
///
/// KDF iteration count. Defaults to 5,000 for fast seeding.
/// Use 600,000 for production-realistic e2e testing.
///
public int KdfIterations { get; init; } = 5_000;
}