PluginProbe
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses / 2.8.1
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses v2.8.1
2.10.0 2.10.01 2.9.1 2.9.0 2.8.1 2.8.0 2.7.7 2.7.5 2.7.0 2.6.01 2.6.0 2.5.0 2.4.01 trunk 1.0.90 1.0.91 1.0.92 1.0.93 1.0.94 1.0.95 1.0.96 1.0.97 1.0.98 1.0.99 1.1.0 All 77 releases
fluent-community / app / Hooks / CLI / DymmyCommands.php

DymmyCommands.php in FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses 2.8.1, at app/Hooks/CLI/DymmyCommands.php

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