argument('userIds'); if (empty($userIds)) { $this->error('You must specify user IDs or "all".'); return 1; } // Handle "all" case if ($userIds === ['all']) { $users = User::all(); foreach ($users as $user) { $this->cleanUpForUser($user); } } else { // Ensure user IDs are unique $uniqueUserIds = array_unique($userIds); foreach ($uniqueUserIds as $userId) { $user = User::find($userId); if ($user) { $this->cleanUpForUser($user); } else { $this->error("User with ID {$userId} not found."); } } } $this->info('Cleanup completed successfully.'); return 0; } /** * Clean up duplicate reading histories for a single user. * * @param \App\Models\User $user * @return void */ protected function cleanUpForUser(User $user): void { $result = $user->cleanUpReadingHistories(); $keptIds = $result['kept_ids']->toArray(); // Convert Collection to array $this->info("User ID {$result['user_id']} - Kept IDs: " . implode(', ', $keptIds) . " - Deleted: {$result['deleted_count']} records."); } }