// utils/userGenerator.ts

// Список русских имён, фамилий, отчеств
const firstNames = ['Алексей', 'Игорь', 'Иван', 'Владислав', 'Дмитрий', 'Константин', 'Сергей', 'Всеволод'];
const lastNames = ['Иванов', 'Петров', 'Сидоров', 'Кузнецов', 'Смирнов', 'Попов', 'Фёдоров'];
const middleNames = ['Алексеевич', 'Иванович', 'Дмитриевич', 'Андреевич', 'Сергеевич', 'Олегович'];

function getRandomFromArray(array: string[]): string {
  return array[Math.floor(Math.random() * array.length)];
}

export function generateFirstName(): string {
  return getRandomFromArray(firstNames);
}

export function generateLastName(): string {
  return getRandomFromArray(lastNames);
}

export function generateMiddleName(): string {
  return getRandomFromArray(middleNames);
}

export function generateRandomString(length: number): string {
  const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
  let result = '';
  for (let i = 0; i < length; i++) {
    result += chars[Math.floor(Math.random() * chars.length)];
  }
  return result;
}

export function generateEmail(): string {
  const timestamp = Date.now();
  return `test_user_${timestamp}@mail.tm`;
}

export function generateLogin(): string {
  return `user_${generateRandomString(6)}`;
}

export function generatePhone(): string {
  const random = Math.floor(100000000 + Math.random() * 900000000); // 9 цифр
  return `+790${random}`; // +79012345678
}

export function generateShortOrgName(): string {
  return `Организация_${generateRandomString(3)}`;
} 

export function generateFullOrgName(): string {
  return `ООО Организация_${generateRandomString(3)}`;
}

export function generateKPP(): string {
  return Array.from({ length: 9 }, () => Math.floor(Math.random() * 10)).join("");
}

export function generateINN(): string {
  return Array.from({ length: 10 }, () => Math.floor(Math.random() * 10)).join("");
}