using Bit.Seeder.Data.Enums;
namespace Bit.Seeder.Options;
///
/// Options for seeding an organization with vault data.
///
public class OrganizationVaultOptions
{
///
/// Organization name.
///
public required string Name { get; init; }
///
/// Domain for user emails (e.g., "example.com").
///
public required string Domain { get; init; }
///
/// Number of member users to create.
///
public required int Users { get; init; }
///
/// Number of login ciphers to create.
///
public int Ciphers { get; init; } = 0;
///
/// Number of groups to create.
///
public int Groups { get; init; } = 0;
///
/// When true and Users >= 10, creates a realistic mix of user statuses:
/// 85% Confirmed, 5% Invited, 5% Accepted, 5% Revoked.
/// When false or Users < 10, all users are Confirmed.
///
public bool RealisticStatusMix { get; init; } = false;
///
/// Org structure for realistic collection names.
///
public OrgStructureModel? StructureModel { get; init; }
///
/// Username pattern for cipher logins.
///
public UsernamePatternType UsernamePattern { get; init; } = UsernamePatternType.FirstDotLast;
///
/// Password strength for cipher logins. Defaults to Realistic distribution
/// (25% VeryWeak, 30% Weak, 25% Fair, 15% Strong, 5% VeryStrong).
///
public PasswordStrength PasswordStrength { get; init; } = PasswordStrength.Realistic;
///
/// Geographic region for culturally-appropriate name generation in cipher usernames.
/// Defaults to Global (mixed locales from all regions).
///
public GeographicRegion? Region { get; init; }
}