export const generatePassword = (length: number) => {
    const uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    const lowercase = "abcdefghijklmnopqrstuvwxyz";
    const numbers = "0123456789";
    const symbols = "!@#$%&()_+-={}:,.<>?/"; // Safe symbol list

    // Ensure the password contains at least one of each required type
    let password: any = [
        uppercase[Math.floor(Math.random() * uppercase.length)],
        lowercase[Math.floor(Math.random() * lowercase.length)],
        numbers[Math.floor(Math.random() * numbers.length)],
        symbols[Math.floor(Math.random() * symbols.length)],
    ];

    // Fill the rest of the password with random characters from all sets
    const allCharacters = uppercase + lowercase;
    for (let i = password.length; i < length; i++) {
        password.push(
            allCharacters[Math.floor(Math.random() * allCharacters.length)]
        );
    }

    // Shuffle the password to avoid predictable patterns
    password = password.sort(() => Math.random() - 0.5).join("");

    return password;
};
