| 1 |
<?php |
| 2 |
// phpcs:disable |
| 3 |
namespace FluentCommunity\Modules\CLI; |
| 4 |
|
| 5 |
use FluentCommunity\App\Models\Comment; |
| 6 |
use FluentCommunity\App\Models\Space; |
| 7 |
use FluentCommunity\App\Models\Feed; |
| 8 |
use FluentCommunity\App\Models\Reaction; |
| 9 |
use FluentCommunity\App\Models\User; |
| 10 |
use FluentCommunity\App\Models\XProfile; |
| 11 |
use FluentCommunity\App\Services\FeedsHelper; |
| 12 |
use FluentCommunity\Framework\Support\Arr; |
| 13 |
use FluentCommunity\Framework\Support\Str; |
| 14 |
|
| 15 |
class DummyCommands |
| 16 |
{ |
| 17 |
|
| 18 |
public function seed($args, $assoc_args) |
| 19 |
{ |
| 20 |
$baseCount = Arr::get($assoc_args, 'count', 5000); |
| 21 |
$userCount = $baseCount; |
| 22 |
$postCount = $userCount * 2; |
| 23 |
$commentCount = $postCount * 5; |
| 24 |
$postReactionCount = $postCount * 5; |
| 25 |
$commentReactionCount = $commentCount * 3; |
| 26 |
|
| 27 |
// $this->create_users($args, ['count' => $userCount]); |
| 28 |
|
| 29 |
$this->create_spaces($args, ['count' => 5]); |
| 30 |
|
| 31 |
$this->create_posts($args, ['count' => $postCount, 'with_space' => 'yes']); |
| 32 |
$this->create_comments($args, ['count' => $commentCount]); |
| 33 |
$this->add_post_reactions($args, ['count' => $postReactionCount]); |
| 34 |
$this->add_comment_reactions($args, ['count' => $commentReactionCount]); |
| 35 |
|
| 36 |
(new Commands)->recalculate_user_points(); |
| 37 |
} |
| 38 |
|
| 39 |
public function create_spaces($args, $assoc_args = []) |
| 40 |
{ |
| 41 |
$count = Arr::get($assoc_args, 'count', 5); |
| 42 |
|
| 43 |
for ($i = 0; $i < $count; $i++) { |
| 44 |
$space = Space::create([ |
| 45 |
'title' => 'BaseSpace ' . $i, |
| 46 |
'slug' => 'space_'.$i, |
| 47 |
'description' => $this->getRandomStatus(10, 20), |
| 48 |
'privacy' => 'private', |
| 49 |
'created_by' => 1 |
| 50 |
]); |
| 51 |
|
| 52 |
$space->members()->attach(1, [ |
| 53 |
'role' => 'admin' |
| 54 |
]); |
| 55 |
} |
| 56 |
|
| 57 |
\WP_CLI::line("Spaces created: $count"); |
| 58 |
|
| 59 |
} |
| 60 |
|
| 61 |
public function assign_users_to_spaces() |
| 62 |
{ |
| 63 |
$spaces = Space::all(); |
| 64 |
$profiles = User::all(); |
| 65 |
|
| 66 |
foreach ($spaces as $space) { |
| 67 |
\WP_CLI::line("Assigning users to space: " . $space->title); |
| 68 |
foreach ($profiles as $index => $profile) { |
| 69 |
if ($space->getMembership($profile->ID)) { |
| 70 |
continue; |
| 71 |
} |
| 72 |
|
| 73 |
$space->members()->attach($profile->ID, [ |
| 74 |
'role' => 'member', |
| 75 |
'status' => 'active' |
| 76 |
]); |
| 77 |
|
| 78 |
if ($index % 100 === 0) { |
| 79 |
\WP_CLI::line("Assigned $index users to space: " . $space->title); |
| 80 |
} |
| 81 |
|
| 82 |
} |
| 83 |
} |
| 84 |
|
| 85 |
\WP_CLI::line("All Done: "); |
| 86 |
} |
| 87 |
|
| 88 |
/* |
| 89 |
* usage: wp fluent_com_dummy create_users --count=1000 |
| 90 |
*/ |
| 91 |
public function create_users($args, $assoc_args) |
| 92 |
{ |
| 93 |
$count = Arr::get($assoc_args, 'count', 10000); |
| 94 |
// let's create the wp users with subscriber role |
| 95 |
for ($i = 0; $i < $count; $i++) { |
| 96 |
$names = $this->getRandomName(); |
| 97 |
$firstName = $names['first_name']; |
| 98 |
$lastName = $names['last_name']; |
| 99 |
$userId = wp_insert_user([ |
| 100 |
'user_login' => 'user_' . $i, |
| 101 |
'user_pass' => wp_generate_password(), |
| 102 |
'user_email' => 'user_' . $i . '@example.com', |
| 103 |
'display_name' => $firstName . ' ' . $lastName, |
| 104 |
'first_name' => $firstName, |
| 105 |
'last_name' => $lastName, |
| 106 |
'role' => 'subscriber' |
| 107 |
]); |
| 108 |
$user = User::find($userId); |
| 109 |
$user->syncXProfile(); |
| 110 |
} |
| 111 |
|
| 112 |
\WP_CLI::line("Users created: $count"); |
| 113 |
|
| 114 |
|
| 115 |
} |
| 116 |
|
| 117 |
public function create_posts($args, $assoc_args) |
| 118 |
{ |
| 119 |
$totalUsersCount = XProfile::query()->count(); |
| 120 |
|
| 121 |
$withSpace = Arr::get($assoc_args, 'with_space') == 'yes'; |
| 122 |
|
| 123 |
if ($withSpace) { |
| 124 |
$spaces = Space::all(); |
| 125 |
$spaceIds = $spaces->pluck('id')->toArray(); |
| 126 |
} |
| 127 |
|
| 128 |
$count = Arr::get($assoc_args, 'count', 1000); |
| 129 |
for ($i = 0; $i < $count; $i++) { |
| 130 |
// get a random user |
| 131 |
$randomUserId = mt_rand(1, $totalUsersCount); |
| 132 |
|
| 133 |
$message = $this->getRandomStatus(); |
| 134 |
|
| 135 |
$randomDate = gmdate('Y-m-d H:i:s', mt_rand(strtotime('-1 years'), current_time('timestamp'))); |
| 136 |
|
| 137 |
$processedData = [ |
| 138 |
'message' => $message, |
| 139 |
'message_rendered' => wp_kses_post(FeedsHelper::mdToHtml($message)), |
| 140 |
'type' => 'text', |
| 141 |
'content_type' => 'text', |
| 142 |
'privacy' => 'public', |
| 143 |
'status' => 'published', |
| 144 |
'space_id' => $withSpace ? Arr::random($spaceIds) : NULL, |
| 145 |
'created_at' => $randomDate, |
| 146 |
'updated_at' => $randomDate, |
| 147 |
'user_id' => $randomUserId |
| 148 |
]; |
| 149 |
|
| 150 |
$feed = new Feed(); |
| 151 |
$feed->fill($processedData); |
| 152 |
$feed->save(); |
| 153 |
} |
| 154 |
|
| 155 |
\WP_CLI::line("Posts created: $count"); |
| 156 |
} |
| 157 |
|
| 158 |
public function create_comments($args, $assoc_args) |
| 159 |
{ |
| 160 |
$totalUsersCount = XProfile::query()->count(); |
| 161 |
$totalPostCount = Feed::query()->count(); |
| 162 |
$count = Arr::get($assoc_args, 'count', 1000); |
| 163 |
|
| 164 |
$createdCount = 0; |
| 165 |
|
| 166 |
for ($i = 0; $i < $count; $i++) { |
| 167 |
// get a random user |
| 168 |
$randomUserId = mt_rand(1, $totalUsersCount); |
| 169 |
$postId = mt_rand(1, $totalPostCount); |
| 170 |
|
| 171 |
$feed = Feed::find($postId); |
| 172 |
if (!$feed) { |
| 173 |
continue; |
| 174 |
} |
| 175 |
$createdCount++; |
| 176 |
|
| 177 |
$message = $this->getRandomStatus(20, 80); |
| 178 |
$commentData = [ |
| 179 |
'user_id' => $randomUserId, |
| 180 |
'post_id' => $feed->id, |
| 181 |
'message' => $message, |
| 182 |
'message_rendered' => wp_kses_post(FeedsHelper::mdToHtml($message)), |
| 183 |
'commentable_type' => 'FluentCommunity\App\Models\Feed', |
| 184 |
'type' => 'comment', |
| 185 |
'content_type' => 'text', |
| 186 |
'status' => 'published', |
| 187 |
'created_at' => gmdate('Y-m-d H:i:s', mt_rand(strtotime('-1 years'), current_time('timestamp'))), |
| 188 |
'updated_at' => gmdate('Y-m-d H:i:s', mt_rand(strtotime('-1 years'), current_time('timestamp'))), |
| 189 |
]; |
| 190 |
|
| 191 |
$comment = new Comment(); |
| 192 |
$comment->fill($commentData); |
| 193 |
$comment->save(); |
| 194 |
|
| 195 |
$feed->comments_count = $feed->comments_count + 1; |
| 196 |
$feed->save(); |
| 197 |
} |
| 198 |
|
| 199 |
\WP_CLI::line("Comments created: $createdCount"); |
| 200 |
} |
| 201 |
|
| 202 |
public function add_post_reactions($args, $assoc_args) |
| 203 |
{ |
| 204 |
$totalUsersCount = XProfile::query()->count(); |
| 205 |
$totalPostCount = Feed::query()->count(); |
| 206 |
$count = Arr::get($assoc_args, 'count', 1000); |
| 207 |
|
| 208 |
$createdCount = 0; |
| 209 |
for ($i = 0; $i < $count; $i++) { |
| 210 |
$userId = mt_rand(1, $totalUsersCount); |
| 211 |
$postId = mt_rand(1, $totalPostCount); |
| 212 |
$post = Feed::find($postId); |
| 213 |
if (!$post) { |
| 214 |
continue; |
| 215 |
} |
| 216 |
|
| 217 |
$reactionData = [ |
| 218 |
'user_id' => $userId, |
| 219 |
'object_id' => $post->id, |
| 220 |
'object_type' => 'feed', |
| 221 |
'type' => 'like', |
| 222 |
'created_at' => gmdate('Y-m-d H:i:s', mt_rand(strtotime('-1 years'), current_time('timestamp'))), |
| 223 |
'updated_at' => gmdate('Y-m-d H:i:s', mt_rand(strtotime('-1 years'), current_time('timestamp'))), |
| 224 |
]; |
| 225 |
|
| 226 |
if ($post->reactions()->where('user_id', $userId)->count() == 0) { |
| 227 |
$reaction = Reaction::create($reactionData); |
| 228 |
} else { |
| 229 |
continue; |
| 230 |
} |
| 231 |
|
| 232 |
$post->reactions_count = $post->reactions_count + 1; |
| 233 |
$post->save(); |
| 234 |
|
| 235 |
$createdCount++; |
| 236 |
} |
| 237 |
|
| 238 |
\WP_CLI::line("Reaction created: $createdCount"); |
| 239 |
|
| 240 |
} |
| 241 |
|
| 242 |
public function add_comment_reactions($args, $assoc_args) |
| 243 |
{ |
| 244 |
$totalUsersCount = XProfile::query()->count(); |
| 245 |
$totalComments = Comment::query()->count(); |
| 246 |
$count = Arr::get($assoc_args, 'count', 1000); |
| 247 |
|
| 248 |
$createdCount = 0; |
| 249 |
|
| 250 |
for ($i = 0; $i < $count; $i++) { |
| 251 |
$userId = mt_rand(1, $totalUsersCount); |
| 252 |
$commentId = mt_rand(1, $totalComments); |
| 253 |
$comment = Comment::find($commentId); |
| 254 |
if (!$comment) { |
| 255 |
continue; |
| 256 |
} |
| 257 |
|
| 258 |
$reactionData = [ |
| 259 |
'user_id' => $userId, |
| 260 |
'parent_id' => $comment->post_id, |
| 261 |
'object_id' => $comment->id, |
| 262 |
'object_type' => 'comment', |
| 263 |
'type' => 'like', |
| 264 |
'created_at' => gmdate('Y-m-d H:i:s', mt_rand(strtotime('-1 years'), current_time('timestamp'))), |
| 265 |
'updated_at' => gmdate('Y-m-d H:i:s', mt_rand(strtotime('-1 years'), current_time('timestamp'))), |
| 266 |
]; |
| 267 |
|
| 268 |
if ($comment->reactions()->where('user_id', $userId)->count() == 0) { |
| 269 |
$reaction = Reaction::create($reactionData); |
| 270 |
} else { |
| 271 |
continue; |
| 272 |
} |
| 273 |
|
| 274 |
$comment->reactions_count = $comment->reactions_count + 1; |
| 275 |
$comment->save(); |
| 276 |
|
| 277 |
$createdCount++; |
| 278 |
} |
| 279 |
|
| 280 |
\WP_CLI::line("Reaction created: $createdCount"); |
| 281 |
|
| 282 |
} |
| 283 |
|
| 284 |
|
| 285 |
protected function getWords($count) |
| 286 |
{ |
| 287 |
$words = []; |
| 288 |
for ($i = 0; $i < $count; $i++) { |
| 289 |
|
| 290 |
if ($count % 10 == 0) { |
| 291 |
// add a new line |
| 292 |
$words[] = PHP_EOL; |
| 293 |
} |
| 294 |
|
| 295 |
$words[] = Str::random(mt_rand(4, 6)); |
| 296 |
} |
| 297 |
return implode(' ', $words); |
| 298 |
} |
| 299 |
|
| 300 |
protected function getRandomStatus($minWords = 80, $maxWords = 300) |
| 301 |
{ |
| 302 |
// Array of sample sentences with meaningful content |
| 303 |
$sentences = [ |
| 304 |
"**Technology** is advancing at an unprecedented pace, opening new possibilities for users and developers alike.", |
| 305 |
"Education is the cornerstone of a thriving society, and continuous learning is essential for **personal growth**.", |
| 306 |
"Healthcare innovations continue to improve outcomes and accessibility for patients *worldwide*.", |
| 307 |
"Environmental **sustainability** is more crucial now than ever, as climate change impacts global communities.", |
| 308 |
"Entrepreneurship drives economic growth by fostering **innovation** and creating job opportunities.", |
| 309 |
"Innovations like *artificial intelligence* and **blockchain** are reshaping industries.", |
| 310 |
"**Cybersecurity** is essential to protect data privacy and integrity in an increasingly digital world.", |
| 311 |
"The future of work is being shaped by **remote technologies** that connect global teams.", |
| 312 |
"Blockchain technology offers new ways to secure transactions and enhance *transparency*.", |
| 313 |
"Nutrition and wellness have become focal points for individuals seeking a *healthier lifestyle*.", |
| 314 |
"Cultural **diversity** enriches societies by bringing a variety of perspectives and experiences.", |
| 315 |
"Sports and physical activities play a crucial role in maintaining **mental and physical health**.", |
| 316 |
"Music and arts provide a **universal language** that bridges gaps between different cultures.", |
| 317 |
"Social media has transformed how we communicate and share information, but it also presents **challenges**.", |
| 318 |
"Mental health awareness is gaining importance, emphasizing the need for accessible **support systems**.", |
| 319 |
"Urban planning and development are key to creating sustainable and **livable cities** for the future.", |
| 320 |
"The role of **leadership** in business cannot be understated as it drives strategic direction and innovation.", |
| 321 |
"Conservation efforts are vital for protecting **biodiversity** and natural habitats.", |
| 322 |
"Technological **literacy** is becoming a fundamental skill in the digital age.", |
| 323 |
"Public transportation systems are evolving to provide more efficient and *eco-friendly* options.", |
| 324 |
"Renewable energy sources are crucial for reducing **carbon footprints** and combating climate change.", |
| 325 |
"The impact of global tourism on local economies and environments is a growing field of study.", |
| 326 |
"Personal finance management is key to achieving long-term **financial stability** and security.", |
| 327 |
"The publishing industry is adapting to the digital era by embracing **ebooks** and online platforms.", |
| 328 |
"Volunteering not only helps communities but also enriches the lives of those who **participate**.", |
| 329 |
"The importance of work-life balance is being recognized as essential for **well-being**.", |
| 330 |
"Agricultural technology is revolutionizing farming practices, making them more **sustainable** and efficient.", |
| 331 |
"The film industry continues to explore new **storytelling techniques** through advances in technology.", |
| 332 |
"Water conservation is critical in regions facing scarcity and is a global **priority**.", |
| 333 |
"Language learning fosters communication and understanding among **diverse populations**.", |
| 334 |
"Veterinary care advances are improving the lives of pets and animals in agricultural settings.", |
| 335 |
"Children's education is adapting to include more **digital tools** and interactive learning methods.", |
| 336 |
"Corporate social responsibility is becoming a standard practice for **ethical business operations**.", |
| 337 |
"The exploration of space continues to excite and inspire innovations in technology and **science**.", |
| 338 |
"Historical preservation is important for maintaining **cultural heritage** and educating future generations.", |
| 339 |
"The role of media in shaping public opinion is significant, requiring **responsible reporting**.", |
| 340 |
"Nutraceuticals are gaining popularity as consumers look for ways to improve health through **diet**.", |
| 341 |
"Fashion and design reflect societal trends and can influence **cultural shifts**.", |
| 342 |
"Telemedicine is making healthcare more accessible, especially in remote or underserved areas.", |
| 343 |
"Data analysis skills are increasingly valuable in a world driven by **metrics** and benchmarks.", |
| 344 |
"Marine conservation efforts are essential for protecting **ocean ecosystems** and species.", |
| 345 |
"E-commerce has transformed retail, offering convenience and a broader range of products.", |
| 346 |
"Public speaking and communication skills are invaluable in professional and personal settings.", |
| 347 |
"The integration of arts into education enhances creativity and **problem-solving** abilities.", |
| 348 |
"Sustainable tourism practices are essential for preserving attractions while benefiting local communities.", |
| 349 |
"The development of drones is impacting sectors from delivery services to **aerial photography**.", |
| 350 |
"Personal development is a lifelong process that involves self-awareness and **goal setting**.", |
| 351 |
"Space-driven initiatives can lead to substantial local changes and **empowerment**.", |
| 352 |
"The study of genetics is revolutionizing medicine with **personalized treatment plans**.", |
| 353 |
"Professional networking is a key component of career development and success.", |
| 354 |
"User experience design is crucial for making technology accessible and enjoyable.", |
| 355 |
"The preservation of wildlife through sanctuaries and reserves is critical for ecological balance.", |
| 356 |
"Museums play a crucial role in educating the public and preserving art and history.", |
| 357 |
"Biotechnology is at the forefront of developing treatments and solutions for complex diseases.", |
| 358 |
"Urban agriculture is growing as a solution to provide cities with fresh, local produce.", |
| 359 |
"Ethical hacking helps strengthen systems against malicious attacks by identifying vulnerabilities.", |
| 360 |
"Digital marketing strategies are crucial for businesses to reach and engage their target audience.", |
| 361 |
"The aging population presents unique challenges and opportunities for healthcare and society.", |
| 362 |
"Adventure sports are gaining popularity as people seek more thrilling and challenging experiences.", |
| 363 |
"Financial technology is simplifying transactions and making banking more accessible to the underserved.", |
| 364 |
"The debate on digital privacy continues as technology becomes more integrated into our lives.", |
| 365 |
"Photography not only captures moments but also communicates stories and emotions.", |
| 366 |
"The importance of local governance in addressing community-specific issues is increasingly recognized.", |
| 367 |
"Robotics in manufacturing boosts efficiency and safety, transforming production processes.", |
| 368 |
"Dietary trends are shifting towards plant-based options for health and environmental reasons.", |
| 369 |
"The significance of mentorship in career advancement is well acknowledged.", |
| 370 |
"The impact of climate change on weather patterns is becoming more apparent and severe.", |
| 371 |
"Carpooling and ride-sharing contribute to reducing traffic congestion and carbon emissions.", |
| 372 |
"The role of antioxidants in preventing chronic diseases is a key area of research.", |
| 373 |
"Craftsmanship in traditional arts is being preserved through modern techniques and education.", |
| 374 |
"The importance of regular exercise cannot be understated for maintaining health.", |
| 375 |
"Dramatic arts provide a platform for expression and understanding social issues.", |
| 376 |
"Literacy initiatives are crucial for empowering individuals and communities.", |
| 377 |
"Wearable technology is enhancing fitness monitoring and personal health management.", |
| 378 |
"The development of smart cities promises more efficient and sustainable urban living.", |
| 379 |
"Non-profit organizations play a vital role in addressing societal and environmental challenges.", |
| 380 |
"Personal branding is becoming more important in the digital age for professionals across fields.", |
| 381 |
"The study of foreign cultures enriches personal experiences and global understanding.", |
| 382 |
"Building effective teams is essential for success in any collaborative endeavor.", |
| 383 |
"The growth of podcasts as a medium for information and entertainment continues to rise.", |
| 384 |
"Artificial reefs are used to promote marine life and restore damaged ecosystems.", |
| 385 |
"Investment in public parks and recreational facilities improves community health and well-being.", |
| 386 |
"Understanding different leadership styles can help in managing diverse teams more effectively.", |
| 387 |
"The rise of micro-mobility devices like scooters impacts urban transportation dynamics.", |
| 388 |
"Privacy regulations are evolving to keep pace with technological advancements.", |
| 389 |
"Crowdfunding platforms have democratized funding for startups and creative projects.", |
| 390 |
"Sculpture as an art form involves both traditional techniques and modern mediums.", |
| 391 |
"Building resilience to natural disasters is crucial for vulnerable regions around the world.", |
| 392 |
"The growth of the gig economy has reshaped the concept of traditional employment.", |
| 393 |
"Augmented reality is creating new experiences in gaming, education, and shopping.", |
| 394 |
"The preservation of languages and dialects is important for maintaining cultural diversity.", |
| 395 |
"Virtual reality offers immersive experiences that are revolutionizing entertainment and education.", |
| 396 |
"The importance of saving and investment for financial independence cannot be understated.", |
| 397 |
"Holistic approaches to health are becoming more popular, integrating body, mind, and spirit.", |
| 398 |
"Green architecture is shaping the future of building by focusing on sustainability and efficiency.", |
| 399 |
"Effective waste management strategies are crucial for reducing environmental impact.", |
| 400 |
"The expansion of online education provides access to learning opportunities regardless of location.", |
| 401 |
"Understanding market trends is essential for businesses to adapt and thrive.", |
| 402 |
"The role of quantum computing in future technological developments is highly anticipated." |
| 403 |
]; |
| 404 |
|
| 405 |
// Shuffle sentences for variety |
| 406 |
shuffle($sentences); |
| 407 |
|
| 408 |
// Generate the paragraph |
| 409 |
$wordCount = 0; |
| 410 |
$paragraph = ""; |
| 411 |
while ($wordCount < $minWords) { |
| 412 |
$sentence = array_shift($sentences); |
| 413 |
|
| 414 |
$paragraph .= $sentence . PHP_EOL . '<br />'; |
| 415 |
$wordCount += str_word_count($sentence); |
| 416 |
|
| 417 |
// Re-shuffle and refill sentences if needed |
| 418 |
if (empty($sentences)) { |
| 419 |
shuffle($sentences); |
| 420 |
} |
| 421 |
} |
| 422 |
|
| 423 |
// Trim the paragraph if it exceeds the maximum word limit |
| 424 |
if ($wordCount > $maxWords) { |
| 425 |
$words = preg_split('/\s+/', $paragraph); |
| 426 |
$paragraph = implode(' ', array_slice($words, 0, $maxWords)); |
| 427 |
} |
| 428 |
|
| 429 |
return $paragraph; |
| 430 |
} |
| 431 |
|
| 432 |
protected function getRandomName() |
| 433 |
{ |
| 434 |
$firstNames = [ |
| 435 |
"Liam", "Olivia", "Noah", "Emma", "Oliver", "Ava", "Elijah", "Sophia", "William", "Isabella", |
| 436 |
"James", "Charlotte", "Benjamin", "Amelia", "Lucas", "Mia", "Henry", "Harper", "Alexander", "Evelyn", |
| 437 |
"Ethan", "Abigail", "Jacob", "Emily", "Michael", "Ella", "Daniel", "Elizabeth", "Logan", "Camila", |
| 438 |
"Matthew", "Luna", "Aiden", "Sofia", "Joseph", "Avery", "Sebastian", "Mila", "Jackson", "Scarlett", |
| 439 |
"David", "Eleanor", "Samuel", "Madison", "Carter", "Layla", "Wyatt", "Penelope", "John", "Aria", |
| 440 |
"Owen", "Chloe", "Dylan", "Grace", "Luke", "Ellie", "Gabriel", "Nora", "Anthony", "Hazel", |
| 441 |
"Isaac", "Zoey", "Grayson", "Riley", "Jack", "Victoria", "Julian", "Lily", "Levi", "Aurora", |
| 442 |
"Christopher", "Violet", "Joshua", "Nova", "Andrew", "Hannah", "Lincoln", "Emilia", "Mateo", "Zoe", |
| 443 |
"Ryan", "Stella", "Jaxon", "Everly", "Nathan", "Isla", "Aaron", "Leah", "Isaiah", "Lillian", |
| 444 |
"Charles", "Addison", "Caleb", "Willow", "Josiah", "Lucy", "Christian", "Paisley", "Hunter", "Natalie", |
| 445 |
"Eli", "Naomi", "Jonathan", "Eliana", "Connor", "Brooklyn", "Landon", "Elena", "Adrian", "Aubrey", |
| 446 |
"Asher", "Claire", "Cameron", "Ivy", "Leo", "Kinsley", "Theodore", "Audrey", "Jeremiah", "Maya", |
| 447 |
"Hudson", "Genesis", "Robert", "Skylar", "Easton", "Bella", "Nolan", "Aaliyah", "Nicholas", "Madelyn", |
| 448 |
"Ezra", "Savannah", "Colton", "Anna", "Angel", "Delilah", "Brayden", "Serenity", "Jordan", "Caroline", |
| 449 |
"Austin", "Kennedy", "Adriel", "Valentina", "Jace", "Ruby", "Cooper", "Sophie", "Xavier", "Alice", |
| 450 |
"Carson", "Gabriella", "Dominic", "Sadie", "Josiah", "Ariana", "Micah", "Allison", "Christopher", "Hailey", |
| 451 |
"Kyrie", "Autumn", "Luca", "Nevaeh", "Jameson", "Natalia", "Camden", "Quinn", "Kai", "Josephine", |
| 452 |
"Bryson", "Sarah", "Weston", "Cora", "Jason", "Emery", "Harrison", "Samantha", "Theo", "Piper", |
| 453 |
"Silas", "Leilani", "George", "Paige", "Kayden", "Mackenzie", "Reid", "Lydia", "Wesley", "Jade", |
| 454 |
"Braxton", "Peyton", "Declan", "Brianna", "Brooks", "Maria", "Jude", "Anastasia", "Antonio", "Isabelle", |
| 455 |
"Cole", "Taylor", "Axel", "Rylee", "Miles", "London", "Sawyer", "Jasmine", "Ryder", "Gianna", |
| 456 |
"Gavin", "Alaina", "Leonardo", "Liliana", "Ayden", "Sofia", "Bennett", "Kaitlyn", "Sean", "Harmony", |
| 457 |
"Beckett", "Daisy", "Ryker", "Alexa", "Liam", "Kayla", "Thomas", "Adalynn", "Oscar", "Vivian", |
| 458 |
]; |
| 459 |
$lastNames = [ |
| 460 |
"Smith", "Johnson", "Williams", "Brown", "Jones", "Miller", "Davis", "Garcia", "Rodriguez", "Wilson", |
| 461 |
"Martinez", "Anderson", "Taylor", "Thomas", "Hernandez", "Moore", "Martin", "Jackson", "Thompson", "White", |
| 462 |
"Lopez", "Lee", "Gonzalez", "Harris", "Clark", "Lewis", "Robinson", "Walker", "Perez", "Hall", |
| 463 |
"Young", "Allen", "Sanchez", "Wright", "King", "Scott", "Green", "Baker", "Adams", "Nelson", |
| 464 |
"Hill", "Ramirez", "Campbell", "Mitchell", "Roberts", "Carter", "Phillips", "Evans", "Turner", "Torres", |
| 465 |
"Parker", "Collins", "Edwards", "Stewart", "Flores", "Morris", "Nguyen", "Murphy", "Rivera", "Cook", |
| 466 |
"Rogers", "Morgan", "Peterson", "Cooper", "Reed", "Bailey", "Bell", "Gomez", "Kelly", "Howard", |
| 467 |
"Ward", "Cox", "Diaz", "Richardson", "Wood", "Watson", "Brooks", "Bennett", "Gray", "James", |
| 468 |
"Reyes", "Cruz", "Hughes", "Price", "Myers", "Long", "Foster", "Sanders", "Ross", "Morales", |
| 469 |
"Powell", "Sullivan", "Russell", "Ortiz", "Jenkins", "Gutierrez", "Perry", "Butler", "Barnes", "Fisher", |
| 470 |
"Henderson", "Coleman", "Simmons", "Patterson", "Jordan", "Reynolds", "Hamilton", "Graham", "Kim", "Gonzales", |
| 471 |
"Alexander", "Ramos", "Wallace", "Griffin", "West", "Cole", "Hayes", "Chavez", "Gibson", "Bryant", |
| 472 |
"Ellis", "Stevens", "Murray", "Ford", "Marshall", "Owens", "Mcdonald", "Harrison", "Ruiz", "Kennedy", |
| 473 |
"Wells", "Alvarez", "Woods", "Mendoza", "Castillo", "Olson", "Webb", "Washington", "Tucker", "Freeman", |
| 474 |
"Burns", "Henry", "Vasquez", "Snyder", "Simpson", "Crawford", "Jimenez", "Porter", "Mason", "Shaw", |
| 475 |
"Gordon", "Wagner", "Hunter", "Romero", "Hicks", "Dixon", "Hunt", "Palmer", "Robertson", "Black", |
| 476 |
"Holmes", "Stone", "Meyer", "Boyd", "Mills", "Warren", "Fox", "Rose", "Rice", "Moreno", |
| 477 |
"Schmidt", "Patel", "Ferguson", "Nichols", "Herrera", "Medina", "Ryan", "Fernandez", "Weaver", "Daniels", |
| 478 |
"Stephens", "Gardner", "Payne", "Kelley", "Dunn", "Pierce", "Arnold", "Tran", "Spencer", "Peters", |
| 479 |
"Hawkins", "Grant", "Hansen", "Castro", "Hoffman", "Hart", "Elliott", "Cunningham", "Knight", "Bradley", |
| 480 |
"Carroll", "Hudson", "Duncan", "Armstrong", "Berry", "Andrews", "Johnston", "Ray", "Lane", "Riley", |
| 481 |
"Carpenter", "Perkins", "Aguilar", "Silva", "Richards", "Willis", "Matthews", "Chapman", "Lawrence", "Garza", |
| 482 |
"Vargas", "Watkins", "Wheeler", "Larson", "Carlson", "Harper", "George", "Greene", "Burke", "Guzman", |
| 483 |
"Morrison", "Munoz", "Jacobs", "Obrien", "Lawson", "Franklin", "Lynch", "Bishop", "Carr", "Salazar", |
| 484 |
"Austin", "Mendez", "Gilbert", "Jensen", "Williamson", "Montgomery", "Harvey", "Oliver", "Howell", "Dean", |
| 485 |
"Hanson", "Weber", "Garrett", "Sims", "Burton", "Fuller", "Soto", "Mccarthy", "Rodriguez", "Chang", |
| 486 |
"Mullins", "Benson", "Sharp", "Bowen", "Daniel", "Barber", "Cummings", "Hines", "Baldwin", "Griffith", |
| 487 |
"Valdez", "Hubbard", "Salinas", "Reeves", "Warner", "Stevenson", "Burgess", "Santos", "Tate", "Cross", |
| 488 |
"Garner", "Mann", "Mack", "Moss", "Thornton", "Dennis", "Mcgee", "Farmer", "Delgado", "Aguirre", |
| 489 |
"Pacheco", "Blair", "Hogan", "Michael", "Donovan", "Mcintosh", "Walls", "Boone", "Charles", "Gill", |
| 490 |
"Godfrey", "Lang", "Combs", "Kramer", "Heath", "Hancock", "Gallagher", "Gaines", "Shaffer", "Short", |
| 491 |
"Wiggins", "Mathews", "Mcclain", "Fischer", "Wall", "Small", "Melton", "Hensley", "Bond", "Dyer", |
| 492 |
"Cameron", "Grimes", "Contreras", "Christian", "Wyatt", "Baxter", "Snow", "Mosley", "Shepherd", "Larsen", |
| 493 |
"Hoover", "Beasley", "Glenn", "Petersen", "Whitehead", "Meyers", "Keith", "Garrison", "Vincent", "Shields", |
| 494 |
"Horn", "Savage", "Olsen", "Schroeder", "Hartman", "Woodard", "Mueller", "Kemp", "Deleon", "Booth", |
| 495 |
"Patel", "Calhoun", "Wiley", "Eaton", "Cline", "Navarro", "Harrell", "Lester", "Humphrey", "Parrish", |
| 496 |
"Duran", "Hutchinson", "Hess", "Dorsey", "Bullock", "Robles", "Beard", "Dalton", "Avila", "Vance", |
| 497 |
"Rich", "Blackwell", "York", "Johns", "Blankenship", "Trevino", "Salinas", "Campos", "Pruitt", "Moses", |
| 498 |
"Callahan", "Golden", "Montoya", "Hardin", "Guerra", "Mcdowell", "Carey", "Stafford", "Gallegos", "Henson", |
| 499 |
"Wilkinson", "Booker", "Merritt", "Miranda", "Atkinson", "Orr", "Decker", "Hobbs", "Preston", "Tanner", |
| 500 |
"Knox", "Pacheco", "Stephenson", "Glass", "Rojas", "Serrano", "Marks", "Hickman", "English", "Sweeney", |
| 501 |
"Strong", "Prince", "Mcclure", "Conway", "Walter", "Roth", "Maynard", "Farrell", "Lowery", "Hurst", |
| 502 |
"Nixon", "Weiss", "Trujillo", "Ellison", "Sloan", "Juarez", "Winters", "Mclean", "Randolph", "Leon", |
| 503 |
"Boyer", "Villarreal", "Mccall", "Gentry", "Carrillo", "Kent", "Ayers", "Lara", "Shannon", "Sexton", |
| 504 |
"Pace", "Hull", "Leblanc", "Browning", "Velasquez", "Leach", "Chang", "House", "Sellers", "Herring", |
| 505 |
"Noble", "Foley", "Bartlett", "Mercado", "Landry", "Durham", "Walls", "Barr", "Mckee", "Bauer", |
| 506 |
"Rivers", "Everett", "Bradshaw", "Pugh", "Velez", "Rush", "Estes", "Dodson", "Morse", "Sheppard", |
| 507 |
"Weeks", "Camacho", "Bean", "Barron", "Livingston", "Middleton", "Spears", "Branch", "Blevins", "Chen", |
| 508 |
"Kerr", "Mcconnell", "Hatfield", "Harding", "Ashley", "Solis", "Herman", "Frost", "Giles", "Blackburn", |
| 509 |
"William", "Pennington", "Woodward", "Finley", "Mcintosh", "Koch", "Best", "Solomon", "Mccullough", "Dudley", |
| 510 |
"Nolan", "Blanchard", "Rivas", "Brennan", "Mejia", "Kane", "Benton", "Joyce", "Buckley", "Haley", |
| 511 |
"Valentine", "Maddox", "Russo", "Mcknight", "Buck", "Moon", "Mcmillan", "Crosby", "Berg", "Dotson", |
| 512 |
"Mays", "Roach", "Church", "Chan", "Richmond", "Meadows", "Faulkner", "Oneill", "Knapp", "Kline", |
| 513 |
"Barry", "Ochoa", "Jacobson", "Gay", "Avery", "Hendricks", "Horne", "Shepard", "Hebert", "Cherry", |
| 514 |
"Cardenas", "Mcintyre", "Whitney", "Waller", "Holman", "Donaldson", "Cantu", "Terrell", "Morin", "Gillespie", |
| 515 |
"Fuentes", "Tillman", "Sanford", "Bentley", "Peck", "Key", "Salas", "Rollins", "Gamble", "Dickson", |
| 516 |
"Battle", "Santana", "Cabrera", "Cervantes", "Howe", "Hinton", "Hurley", "Spence", "Zamora", "Yang", |
| 517 |
"Mcneil", "Suarez", "Case", "Petty", "Gould", "Mcfarland", "Sampson", "Carver", "Bray", "Rosario", |
| 518 |
"Macdonald", "Stout", "Hester", "Melendez", "Dillon", "Farley", "Hopper", "Galloway", "Potts", "Bernard", |
| 519 |
"Joyner", "Stein", "Aguirre", "Osborn", "Mercer", "Bender", "Franco", "Rowland", "Sykes", "Benjamin", |
| 520 |
"Travis", "Pickett", "Crane", "Sears", "Mayo", "Dunlap", "Hayden", "Wilder", "Mckay", "Coffey", |
| 521 |
"Mccarty", "Ewing", "Cooley", "Vaughan", "Bonner", "Cotton", "Holder", "Stark", "Ferrell", "Cantrell", |
| 522 |
"Fulton", "Lynn", "Lott", "Calderon", "Rosa", "Pollard", "Hooper", "Burch", "Mullen", "Fry", |
| 523 |
"Riddle", "Levy", "David", "Duke", "Odonnell", "Guy", "Michael", "Britt", "Frederick", "Daugherty", |
| 524 |
"Berger", "Dillard", "Alston", "Jarvis", "Frye", "Riggs", "Chaney", "Odom", "Duffy", "Fitzpatrick", |
| 525 |
"Valenzuela", "Merrill", "Mayer", "Alford", "Mcpherson", "Acevedo", "Donovan", "Barrera", "Albert", "Cote", |
| 526 |
"Reilly", "Compton", "Raymond", "Mooney", "Mcgowan", "Craft", "Cleveland", "Clemons", "Wynn", "Nielsen", |
| 527 |
"Baird", "Stanton", "Snider", "Rosales", "Bright", "Witt", "Stuart", "Hays", "Holden", "Rutledge", |
| 528 |
"Kinney", "Clements", "Castaneda", "Slater", "Hahn", "Emerson", "Conrad", "Burks", "Delaney", "Pate", |
| 529 |
"Lancaster", "Sweet", "Justice", "Tyson", "Sharpe", "Whitfield", "Talley", "Macias", "Irwin", "Burris", |
| 530 |
"Ratliff", "Mccray", "Madden", "Kaufman", "Beach", "Goff", "Cash", "Bolton", "Mcfadden", "Levine", |
| 531 |
"Good", "Byers", "Kirkland", "Kidd", "Workman", "Carney", "Dale", "Mcleod", "Holcomb", "England", |
| 532 |
"Finch", "Head", "Burt", "Hendrix", "Sosa", "Haney", "Franks", "Sargent", "Nieves", "Downs", |
| 533 |
"Rasmussen", "Bird", "Hewitt", "Lindsay", "Le", "Foreman", "Valencia", "Oneil", "Delacruz", "Vinson", |
| 534 |
"Dejesus", "Hyde", "Forbes", "Gilliam", "Guthrie", "Wooten", "Huber", "Barlow", "Boyle", "McMahon", |
| 535 |
"Buckner", "Rocha", "Puckett", "Langley", "Knowles", "Cooke", "Velazquez", "Whitley", "Noel", "Vang" |
| 536 |
]; |
| 537 |
|
| 538 |
return [ |
| 539 |
'first_name' => Arr::random($firstNames), |
| 540 |
'last_name' => Arr::random($lastNames) |
| 541 |
]; |
| 542 |
} |
| 543 |
} |
| 544 |
|