BLUE
PHP 7.4.33
Path:
/var/www/multi-event-cfp.bitkit.dk/httpdocs/routes
Run
Logout
Edit File
Size: 73.49 KB
Close
/var/www/multi-event-cfp.bitkit.dk/httpdocs/routes/console.php
Text
Base64
<?php use App\Jobs\SendSpeakerTerms; use App\Models\Abstracts; use App\Models\Event; use App\Models\EventUser; use App\Models\Log as DBLog; use App\Models\PublishedSession; use App\Models\SessionUser; use App\Models\Slot; use App\Models\SlotUser; use App\Models\SystemEmail; use App\Repositories\UserRepository; use Illuminate\Support\Facades\Log; use App\Models\Presenter; use App\Repositories\AbstractsRepository; use Illuminate\Foundation\Inspiring; use Illuminate\Support\Facades\Artisan; use App\Models\Presentation; use App\Models\Session; use App\Models\User; use App\Models\File; use App\Jobs\ProcessUserHeadshots; /* |-------------------------------------------------------------------------- | Console Routes |-------------------------------------------------------------------------- | | This file is where you may define all of your Closure based console | commands. Each Closure is bound to a command instance allowing a | simple approach to interacting with each command's IO methods. | */ Artisan::command('inspire', function () { $this->comment(Inspiring::quote()); })->purpose('Display an inspiring quote'); Artisan::command('log-clear', function () { DBLog::where('created_at', '<', DATE_SUB(NOW(), date_interval_create_from_date_string(env('LOG_TRUNCATE_DAYS', 30) . ' days')))->delete(); $this->comment('Log cleared'); })->purpose("truncate older data's from log table "); Artisan::command('remove-table-column-for-file', function () { $events = Event::all(); foreach ($events as $event) { $formSettings = $event->form_settings->toArray(); foreach ($formSettings as $key => $formSetting) { if ($formSetting['type'] == 'file') { unset($formSetting['table_column']); $formSettings[$key] = $formSetting; $event->form_settings = $formSettings; $event->save(); break; } } $this->comment('Updated form settings of event ' . $event->id); } })->purpose('Remove table column key from file type of form settings'); Artisan::command('correct-score-criteria', function () { $events = Event::all(); foreach ($events as $event) { $scoreSettings = $event->score_settings->toArray(); $scoreSettings['weightage'] = false; $scores = $scoreSettings['scores']; foreach ($scores as $key => $score) { $scores[$key]['weightage'] = null; } $scoreSettings['scores'] = $scores; $event->score_settings = $scoreSettings; $event->save(); $this->comment('Updated score settings of event ' . $event->id); } })->purpose('Change weightage to false and make weightage null for each criteria'); Artisan::command('add-enabled-to-subcategory', function () { $events = Event::all(); foreach ($events as $event) { $formSettings = $event->form_settings->toArray(); foreach ($formSettings as $key => $formSetting) { if ($formSetting['field_id'] == 'subcategory') { if (!isset($formSetting['enabled'])) { $formSetting['enabled'] = true; $formSettings[$key] = $formSetting; $event->form_settings = $formSettings; $event->save(); $this->comment('Updated form settings of event ' . $event->id); } break; } } } }); // Artisan::command('cron-for-syncing-agreement-status', function () { // $adobeSign = getAdobeSign(); // $eventUsers = EventUser::whereNotNull('agreement_status') // ->where('agreement_status', '!=', 'SIGNED') // ->get(); // $userRepository = new UserRepository(); // foreach ($eventUsers as $eventUser) { // $userRepository->fetchAgreementStatus($eventUser); // Log::info('Synced agreement status of event_user : ' . $eventUser->id); // $this->comment('Synced agreement status of event_user : ' . $eventUser->id); // } // return true; // }); Artisan::command('cron-for-syncing-agreement-status', function () { $adobeSign = getAdobeSign(); $eventUsers = EventUser::whereNotNull('agreement_status') ->where('agreement_status', '!=', 'SIGNED') ->get(); $userRepository = new UserRepository(); foreach ($eventUsers as $eventUser) { try { $userRepository->fetchAgreementStatus($eventUser); Log::info('Synced agreement status of event_user : ' . $eventUser->id); $this->comment('Synced agreement status of event_user : ' . $eventUser->id); } catch (\Exception $e) { Log::error('Error syncing agreement status for event_user: ' . $eventUser->id . '. Error: ' . $e->getMessage()); $this->error('Error syncing agreement status for event_user: ' . $eventUser->id); } } return true; }); Artisan::command('cron-for-activating-adobe-web-hook', function () { $webhookId = config('adobesign.webhook_id'); if (!$webhookId) { $this->comment('Web hook id not found'); return false; } $adobeSign = getAdobeSign(); $response = $adobeSign->getWebhook($webhookId); $responseContent = $response->getBody()->getContents(); $webhook = json_decode($responseContent, true); if ($webhook) { $status = $webhook['status']; if ($status == "INACTIVE") { Log::info('Webhook is inactive'); Log::info('Activating webhook'); $adobeSign->updateWebhookState($webhookId, 'ACTIVE'); Log::info('Webhook activated'); $this->comment('Webhook activated'); } else $this->comment('Webhook is active'); } return true; })->purpose('Activate webhook if it is inactive'); Artisan::command('event:update-config {--C|command=}', function ($command) { function addGeneralSettings($instance) { //add general settings to event which don't have them $events = Event::all(); $eventSettings = config('event_settings'); $generalSettings = json_decode(json_encode($eventSettings->general_settings)); foreach ($events as $event) { if (!$event->general_settings) { $event->general_settings = $generalSettings; $event->save(); $instance->comment('Added general settings to event ' . $event->id); } } } function addEventIdToPresenter($instance) { $presenters = Presenter::all(); foreach ($presenters as $presenter) { if (!$presenter->event_id) { $eventId = $presenter->presentation->event_id; $presenter->event_id = $eventId; $presenter->save(); $instance->comment('Updated presenter' . $presenter->id . 'with event id ' . $eventId); } } } function countNoOfVotesForAbstracts($instance) { $abstractRepo = new AbstractsRepository(); $abstracts = Abstracts::all(); foreach ($abstracts as $abstract) { $abstract = $abstractRepo->countNoOfVotesForAbstract($abstract); $abstract->refresh(); $instance->comment("Updated abstract : {$abstract->id}, No. of votes : {$abstract->no_of_votes}"); } } function addEnabledInCategoryAndSubcategory($instance) { //add enabled option to subcategory options of already existing events //change category option to object with keys value and enabled option $events = Event::all(); foreach ($events as $event) { $formSettings = $event->form_settings->toArray(); //updating category $categoryField = getField($formSettings, 'category')[0]; $options = $categoryField['options']; $newOptions = []; foreach ($options as $option) { if (gettype($option) != 'string') { $option['enabled'] = true; $newOptions[] = $option; } else { $newOption = []; $newOption['enabled'] = true; $newOption['value'] = $option; $newOptions[] = $newOption; } } $formSettings = updateField($formSettings, 'category', 'options', $newOptions); //updating subcategory $subcategoryField = getField($formSettings, 'subcategory')[0]; $options = $subcategoryField['options']; foreach ($options as $key1 => $option) { $subcategories = $option['subcategory']; foreach ($subcategories as $key2 => $subcategory) { $subcategory['enabled'] = true; $subcategories[$key2] = $subcategory; } $option['subcategory'] = $subcategories; $options[$key1] = $option; } $formSettings = updateField($formSettings, 'subcategory', 'options', $options); $event->form_settings = $formSettings; $event->save(); $instance->comment('Updated score settings of event ' . $event->id); } } function addWrittenPaperTemplatesConfig($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['written_paper_templates'])) { $generalSettings['written_paper_templates']['enabled'] = true; $generalSettings['written_paper_templates']['description'] = ""; $generalSettings['written_paper_templates']['files'] = []; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated score settings of event ' . $event->id); } } } function addSpeakerTermsSettings($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['speaker_terms_prefill'])) { $generalSettings['speaker_terms_prefill']['enabled'] = true; $generalSettings['speaker_terms_prefill']['name_of_signatory'] = ""; $generalSettings['speaker_terms_prefill']['legal_entity_name'] = ""; $generalSettings['speaker_terms_prefill']['footer'] = ""; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Added speaker terms config for event - ' . $event->id); } else { if (!isset($generalSettings['speaker_terms_prefill']['enabled'])) { $generalSettings['speaker_terms_prefill']['enabled'] = true; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Added speaker terms config for event -' . $event->id); } } } } function addSubmitterSectionTopConfig($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['submitter_page_top_section'])) { $generalSettings['submitter_page_top_section']['enabled'] = false; $generalSettings['submitter_page_top_section']['title'] = ""; $generalSettings['submitter_page_top_section']['welcome_text'] = ""; $generalSettings['submitter_page_top_section']['image'] = [ "filename" => "", "filepath" => "", "value" => "", "extension" => "" ]; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } function addAccessTokenToSpeakerTerms($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (isset($generalSettings['speaker_terms_prefill'])) { if (!isset($generalSettings['speaker_terms_prefill']['access_token'])) { $generalSettings['speaker_terms_prefill']['access_token'] = ""; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } } function updatePlatformSettings($instance) { $events = Event::all(); foreach ($events as $event) { $platformSettings = $event->platform_settings->toArray(); if(!isset($platformSettings['reviewer_abstract_platform'])){ $platformSettings['reviewer_abstract_platform'] = true; } $event['platform_settings'] = $platformSettings; $event->save(); $instance->comment('Updated platform settings of event ' . $event->id); } } function updateGeneralSettingsSpeakerTermsSettings($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['speaker_terms_prefill']['terms_and_condition_status'])) { $generalSettings['speaker_terms_prefill']['terms_and_condition_status'] = false; $generalSettings['speaker_terms_prefill']['t_and_c_check_box_one_description'] = ""; $generalSettings['speaker_terms_prefill']['t_and_c_check_box_two_description'] = ""; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } function updateGeneralSettings($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['submitter_abstract_presenters_section'])) { $generalSettings['submitter_abstract_presenters_section']['enabled'] = false; $generalSettings['submitter_abstract_presenters_section']['no_of_presenters_allowed'] = ""; $generalSettings['submitter_abstract_presenters_section']['information_text'] = ""; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } function addAbstractSubmissionFlag($instance) { $abstracts = Abstracts::all(); foreach ($abstracts as $abstract) { if ($abstract->submission_status === 'submitted' && !$abstract->submission_flag) { $abstract->submission_flag = true; $abstract->save(); $instance->comment("Updated abstract : {$abstract->id}"); } } } function updatePlatformSettingsWithMySession($instance) { $events = Event::all(); foreach ($events as $event) { $platformSettings = $event->platform_settings->toArray(); if (!isset($platformSettings['submitter_my_session_platform'])) { $platformSettings['submitter_my_session_platform'] = true; } $event['platform_settings'] = $platformSettings; $event->save(); $instance->comment('Updated platform settings of event ' . $event->id); } } function addReviewerSectionTopConfig($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['reviewer_page_top_section'])) { $generalSettings['reviewer_page_top_section']['enabled'] = false; $generalSettings['reviewer_page_top_section']['title'] = ""; $generalSettings['reviewer_page_top_section']['welcome_text'] = ""; $generalSettings['reviewer_page_top_section']['image'] = [ "filename" => "", "filepath" => "", "value" => "", "extension" => "" ]; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } function addRequestToEditGeneralSettings($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['presentation_templates']['request_to_edit'])) { $generalSettings['presentation_templates']['request_to_edit'] = true; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } function addJobTitleToVerifiedData($instance) { $eventUsers = EventUser::whereNotNull('verification_data') ->get(); foreach ($eventUsers as $eventUser) { if ($eventUser->verification_data) { $verificationData = $eventUser->verification_data; if (!isset($verificationData['job_title'])) { $verificationData['job_title'] = false; if (isset($verificationData['verify_all'])) { if ($verificationData['verify_all']) { $verificationData['verify_all'] = false; } } $eventUser->verification_data = $verificationData; $eventUser->save(); $instance->comment('Updated verification data of event user ' . $eventUser->id); } } } return true; } function addPresentationSubmissionDate($instance) { $presentations = Presentation::all(); foreach ($presentations as $presentation) { if ($presentation) { if ($presentation->submission_status == 'Submitted' && !$presentation->submission_date) { $presentation->submission_date = $presentation->updated_at; $presentation->save(); $instance->comment('Updated Presentation' . $presentation->id); } } } } function updateGeneralSettingsWithTimeZoneSection($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['scheduled_email_time_zone_section'])) { $generalSettings['scheduled_email_time_zone_section']['time_zone'] = "Asia/Kolkata"; $generalSettings['scheduled_email_time_zone_section']['enabled'] = true; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } function updateGeneralSettingsWithDTCMFormFieldsSection($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['dtcm_form_fields_section'])) { $generalSettings['dtcm_form_fields_section']['dtcm_form_fields'] = false; $generalSettings['dtcm_form_fields_section']['enabled'] = true; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function updateGeneralSettingsWithGTMScriptsSection($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['GTM_scripts_section'])) { $generalSettings['GTM_scripts_section']['GTM_script_code'] = ""; $generalSettings['GTM_scripts_section']['enabled'] = true; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } function updateGeneralSettingsWithGTM($instance) { $eventMappings = [ 'world-lng-summit-awards' => ['id' => 19, 'GTM_script_code' => 'GTM-KJ9DSQJ'], 'americas23' => ['id' => 39, 'GTM_script_code' => 'GTM-N6GC5CW'], 'nogenergyweek' => ['id' => 15, 'GTM_script_code' => 'GTM-M6JRCQS'], 'global-energy-show24' => ['id' => 43, 'GTM_script_code' => 'GTM-K7PTTSN'], 'egypes-2024' => ['id' => 26, 'GTM_script_code' => 'GTM-M776FSR'], 'china-lng-2023' => ['id' => 11, 'GTM_script_code' => 'GTM-NZRKCZB'], 'gastech-2022' => ['id' => 2, 'GTM_script_code' => 'GTM-TVZFC4T'], 'egyps-2023' => ['id' => 8, 'GTM_script_code' => 'GTM-M776FSR'], 'future-mobility-asia-2024' => ['id' => 47, 'GTM_script_code' => 'GTM-TD53MMP'], 'future-energy-asia-2024' => ['id' => 46, 'GTM_script_code' => 'GTM-TCFSMCZ'], 'world-police-summit-2024' => ['id' => 49, 'GTM_script_code' => 'GTM-TRG43LP'], ]; $events = Event::whereIn('slug_name', array_keys($eventMappings))->get(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); $slug = $event->slug_name; if (isset($generalSettings['GTM_scripts_section']) && isset($eventMappings[$slug])) { $generalSettings['GTM_scripts_section']['GTM_script_code'] = $eventMappings[$slug]['GTM_script_code']; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated general settings of event ' . $event->id); } } } function updatePlatformSettingsWithSubmitterAbstractSection($instance) { $events = Event::all(); foreach ($events as $event) { $platformSettings = $event->platform_settings->toArray(); if (!isset($platformSettings['submitter_abstract_platform'])) { $platformSettings['submitter_abstract_platform'] = true; $platformSettings['submitter_abstract_daft_creation'] = true; } $event['platform_settings'] = $platformSettings; $event->save(); $instance->comment('Updated platform settings of event ' . $event->id); } } function systemEmailsVariableSectionChanges($instance) { $systemEmails = SystemEmail::whereIn('mail_type', ['abstract_selected']) ->orWhereIn('key', ['abstract_submitted_to_existing_users', 'abstract_submitted_to_new_users']) ->get(); foreach ($systemEmails as $systemEmail) { $existingVariables = $systemEmail->variables->getArrayCopy(); $newVariable = ["key" => "abstract_id", "value" => "Abstract ID"]; $variableExists = collect($existingVariables)->contains($newVariable); if (!$variableExists) { $systemEmail->variables->append($newVariable); $systemEmail->save(); $instance->comment('Updated system email ' . $systemEmail->id); } } } function systemEmailsVariableSectionChangesWithTitle($instance) { $systemEmails = SystemEmail::whereIn('mail_type', ['abstract_selected']) ->get(); foreach ($systemEmails as $systemEmail) { $existingVariables = $systemEmail->variables->getArrayCopy(); $newVariables = [ ["key" => "abstract_title_label", "value" => "Abstract title label from config"], ["key" => "abstract_title_value", "value" => "Abstract title"] ]; // Check if the new variables already exist in the existing variables $variablesExist = collect($newVariables)->every(function ($newVariable) use ($existingVariables) { return collect($existingVariables)->contains(function ($variable) use ($newVariable) { return $variable['key'] === $newVariable['key']; }); }); if (!$variablesExist) { // Append the new variables to the existing variables array $updatedVariables = array_merge($existingVariables, $newVariables); // Update the variables in the SystemEmail model $systemEmail->variables = $updatedVariables; $systemEmail->save(); $instance->comment('Updated system email ' . $systemEmail->id); } } } function updateFormSettingsWithSubSection($instance) { $events = Event::all(); foreach ($events as $event) { $formSettings = $event->form_settings->toArray(); // sub section field if exist $subSectionField = collect($formSettings)->where('field_id', 'subsection')->first(); if (!$subSectionField) { $categoryField = collect($formSettings)->where('field_id', 'category')->first(); $categoryOptions = $categoryField ? $categoryField['options'] : []; $subsections = []; if (!empty($categoryOptions)) { $subsections = array_map(function ($categoryOption) { return [ "category" => [ "label" => isset($categoryOption['label']) ? $categoryOption['label'] : "", "value" => isset($categoryOption['value']) ? $categoryOption['value'] : "", "id" => isset($categoryOption['id']) ? $categoryOption['id'] : "", "enabled" => true ], "subsection" => [ [ "instructions" => "", "id" => time() * 1000, "enabled" => true, "label" => "" ] ] ]; }, $categoryOptions); } // Find the index of the "Subcategory" field in the form settings $subCategoryField = collect($formSettings)->where('field_id', 'subcategory')->first(); $subCategoryFieldIndex = collect($formSettings)->pluck('field_id')->search('subcategory'); // Add the "Subsection" field to the form settings after the "Subcategory" field array_splice($formSettings, $subCategoryFieldIndex + 1, 0, [ [ 'label' => 'Subsection', 'description' => 'Please select the Sub-section that your abstract best belongs to', 'type' => 'subsection_multi', 'fields' => [ [ 'label' => 'Content', 'description' => null, 'enabled' => false, 'required' => false, 'type' => 'textarea', 'validation' => 'max|500', 'field_id' => 'subsection_content', 'table_column' => true, 'note' => null, ], [ 'label' => 'Attachment', 'description' => null, 'file_format' => ['.jpg', '.xlsx', '.xls', '.pdf'], 'enabled' => true, 'required' => false, 'type' => 'file', 'field_id' => 'subsection_attachment', 'table_column' => false, 'note' => null, ], ], 'required' => false, 'enabled' => false, 'options' => $subsections, 'position' => $subCategoryField['position'], 'table_column' => false, 'field_id' => 'subsection', 'field_name' => 'Subsection', 'note' => null, ], ]); // Update the form settings with the new structure $event->form_settings = $formSettings; $event->save(); $instance->comment('Updated form settings of event ' . $event->id); } } } function updateEventsWithNewCloneFormSettings($instance) { $events = Event::all(); foreach ($events as $event) { $formSettings = $event->form_settings->toArray(); // save form settings to new clone form settings $event->clone_form_settings = $formSettings; $event->save(); $instance->comment('Created clone form settings of event ' . $event->id); } } function updateEventsWithFormSettingsEnableOption($instance) { $events = Event::all(); foreach ($events as $event) { $formSettingsArray = $event->form_settings->toArray(); foreach ($formSettingsArray as &$section) { if ($section['type'] === 'subsection_multi' && isset($section['fields'])) { foreach ($section['fields'] as &$field) { if ($field['label'] === 'Content') { // Change the "enabled" value to false $field['enabled'] = false; // No break here, continue processing other fields within the subsection } } } } // Save the modified form settings back to the event $event->form_settings = $formSettingsArray; $event->save(); $instance->comment('Updated form settings of event ' . $event->id); } } function updateFormSettingsWithTitleDisabledOption($instance) { $events = Event::all(); foreach ($events as $event) { $formSettingsArray = $event->form_settings->toArray(); foreach ($formSettingsArray as &$field) { if ($field['field_id'] === 'abstract' || $field['field_id'] === 'title') { if (!isset($field['enabled'])) { // Add enabled value $field['enabled'] = true; } } } // Save the modified form settings back to the event $event->form_settings = $formSettingsArray; $event->save(); $instance->comment('Updated form settings of event ' . $event->id); } } function updateGeneralSettingsWithAwardsSubmissionSection($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['award_submission_section'])) { $generalSettings['award_submission_section']['submission_section'] = false; $generalSettings['award_submission_section']['enabled'] = true; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function updateGeneralSettingsWithSurveySettingsSection($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['survey_settings_section'])) { $generalSettings['survey_settings_section']['survey_settings'] = false; $generalSettings['survey_settings_section']['form_link'] = ""; $generalSettings['survey_settings_section']['enabled'] = true; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function updatePublishedSessions($instance) { $publishedSessions = PublishedSession::all(); foreach ($publishedSessions as $publishedSession) { if ($publishedSession->published_data) { $publishedData = $publishedSession->published_data; if (isset($publishedData['users'])) { $users = $publishedData['users']; // Remove duplicate users from the "users" array $uniqueUsers = collect($users)->unique('id')->values()->all(); $publishedData['users'] = $uniqueUsers; } if (isset($publishedData['slots'])) { $slots = $publishedData['slots']; // Loop through the slots and remove duplicate users from each slot foreach ($slots as &$slot) { if (isset($slot['users'])) { $users = $slot['users']; // Remove duplicate users from the "users" array in each slot $uniqueUsers = collect($users)->unique('id')->values()->all(); $slot['users'] = $uniqueUsers; } } $publishedData['slots'] = $slots; } // Save the updated published data back to the published session $publishedSession->published_data = $publishedData; $publishedSession->save(); $instance->comment('Updated published session ' . $publishedSession->id); } } } function changeSpeakerTermsForEventIEW($instance) { $eventSlug = 'india-energy-week-2025'; $event = Event::whereSlugName($eventSlug)->first(); // Retrieve all users for the event $users = $event->users()->distinct()->pluck('users.id'); $processedEmails = []; $eventUsers = []; try { // Retrieve all users for the event $users = $event->users()->distinct()->pluck('users.id'); // Process users processUsers($users, $event, $processedEmails, $eventUsers, $instance); // Retrieve presenters for the event $presenters = Presenter::where('event_id', $event->id)->get(); // Process presenters processPresenters($presenters, $event, $processedEmails, $eventUsers, $instance); // Dispatch the job only if all users have been successfully processed dispatch(new SendSpeakerTerms($eventUsers)); } catch (\Exception $e) { // Log the error message for debugging purposes $instance->error('Error occurred while processing event users: ' . $e->getMessage()); // Optionally, you can log the error to a log file as well \Log::error('Error occurred while processing event users: ' . $e->getMessage()); // You can also return early or take other necessary actions if needed return; } } // Function to process users function processUsers($users, $event, &$processedEmails, &$eventUsers, $instance) { foreach ($users as $userId) { // Retrieve the corresponding EventUser from the user $eventUser = getEventUser($event->id, $userId); if ( $eventUser && $eventUser->confirmed_speaker && isset($eventUser->event_profile_data['send_adobe_contract']) && $eventUser->event_profile_data['send_adobe_contract'] ) { $user = $eventUser->user; // Check if the user's email has already been processed if (!in_array($user->email, $processedEmails)) { // Reset agreement status and details $eventUser->agreement_status = null; $eventUser->agreement_details = null; // Save the changes $eventUser->save(); // Add the email to the processed list $processedEmails[] = $user->email; $eventUsers[] = $eventUser; // Log information $instance->comment('Updated event user ' . $eventUser->id); $instance->comment('Updated user ' . $user->email); } } } } // Function to process presenters function processPresenters($presenters, $event, &$processedEmails, &$eventUsers, $instance) { foreach ($presenters as $presenter) { // Retrieve the corresponding EventUser for the presenter $eventUser = getEventUser($event->id, $presenter->user_id); if ($eventUser) { $user = $eventUser->user; // Check if the user's email has already been processed if (!in_array($user->email, $processedEmails)) { // Reset agreement status and details $eventUser->agreement_status = null; $eventUser->agreement_details = null; // Save the changes $eventUser->save(); // Add the email to the processed list $processedEmails[] = $user->email; $eventUsers[] = $eventUser; // Log information $instance->comment('Updated event user ' . $eventUser->id); $instance->comment('Updated user ' . $user->email); } } } } function addAbstractPresentationTrackToSlots($instance) { $slots = Slot::all(); foreach ($slots as $slot) { if ($slot->abstract_id) { $abstract = Abstracts::where('id', $slot->abstract_id)->first(); $titleField = collect($abstract->data)->firstWhere('field_id', 'title'); $presenters = $abstract->users('abstract_presenter')->pluck('id')->toArray(); $slot->abstract_presentation_track = [ 'field' => 'abstract', 'title' => $titleField ? $titleField['value'] : '', 'speakers' => $presenters, ]; $slot->save(); $instance->comment('Updated Slot ' . $slot->id); } if ($slot->presentation_id) { $presentation = Presentation::where('id', $slot->presentation_id)->first(); $titleField = collect($presentation->data)->firstWhere('field_id', 'title'); $presenters = $presentation->presenters->pluck('id')->toArray(); $slot->abstract_presentation_track = [ 'field' => 'presentation', 'title' => $titleField ? $titleField['value'] : '', 'speakers' => $presenters, ]; $slot->save(); $instance->comment('Updated Slot ' . $slot->id); } } } function addNewSystemEmailPublishedSessionStatusChange($instance) { $events = Event::all(); foreach ($events as $event) { systemEmail::create([ 'event_id' => $event->id, 'mail_type' => 'session', 'title' => 'Published Session Status Update Email to Admin Due to an Update Made to the Abstract or Presentation', 'description' => 'Sending published session status update mail to admin due to an update made to the abstract or presentation', 'key' => 'published_session_slot_abstract_presentation_change', 'recipient' => 'Admin', 'variables' => array( array("key" => "event_name", "value" => "Event name"), array("key" => "session_id", "value" => "Session id"), array("key" => "session_title", "value" => "Session title"), array("key" => "type", "value" => "Type : Abstract or Presentation"), array("key" => "entity_id", "value" => "Abstract or Presentation Id"), array("key" => "entity_title", "value" => "Abstract or Presentation Title"), array("key" => "agenda_builder_link", "value" => "Agenda Builder Link"), ), 'subject' => 'Published Session Status Changed', 'body' => '<p>Hi {event_name} Admin,<br><br>The status of the published session titled {session_title} was changed to unpublished due to an update made to the {type}(id : #{entity_id}) used in one of its slots. Check the updated details and republish the session again.<br><br>Link: {agenda_builder_link}<br><br>Thank you,<br>{event_name} Team</p>', 'status' => 1, ]); $instance->comment('New system event created for event ' . $event->id); } } function updateEventUserWithColumnOrder($instance) { $events = Event::all(); foreach ($events as $event) { $eventUsers = EventUser::where('event_id', $event->id) ->where('confirmed_speaker', 1) ->orderBy('created_at') ->get(); if ($eventUsers) { $i = 1; foreach ($eventUsers as $eventUser) { $eventUser->order = $i; $eventUser->save(); $i++; $instance->comment('Updated event user ' . $eventUser->id); } } } } // function changeSpeakerTermsForEventIEW($instance) // { // $eventId = 52; // // Retrieve presenters for the specified event // $presenters = Presenter::where('event_id', $eventId)->get(); // $processedEmails = []; // $eventUsers = []; // foreach ($presenters as $presenter) { // // Retrieve the corresponding EventUser for the presenter // $eventUser = getEventUser($eventId, $presenter->user_id); // if ($eventUser) { // $user = $eventUser->user; // // Check if the user's email has already been processed // if (!in_array($user->email, $processedEmails)) { // // Reset agreement status and details // $eventUser->agreement_status = null; // $eventUser->agreement_details = null; // // Save the changes // $eventUser->save(); // // Add the email to the processed list // $processedEmails[] = $user->email; // $eventUsers[] = $eventUser; // $instance->comment('Updated event user ' . $eventUser->id); // } // } // } // // Dispatch the job after the loop // dispatch(new SendSpeakerTerms($eventUsers)); // } function addSessionFormSettingsToGeneralSettings($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['session_form_settings'])) { $generalSettings['session_form_settings']['enabled'] = false; $generalSettings['session_form_settings']['settings_id'] = "session_form_settings"; $generalSettings['session_form_settings']['label'] = ""; $generalSettings['session_form_settings']['categories'] = []; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function addUserBioLimitSettingsToGeneralSettings($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['user_bio_settings'])) { $generalSettings['user_bio_settings']['user_bio_limit'] = ""; $generalSettings['user_bio_settings']['enabled'] = false; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function sessionCategoryUpdateToArray($instance) { $sessions = Session::all(); foreach ($sessions as $session) { // Access the session categories directly as an array $categories = $session->session_categories; if ($categories && !is_array($categories) && $categories != []) { // Convert the categories object to array $categoriesArray = []; foreach ($categories as $category) { $categoriesArray[] = $category; } //Update the session with the new array format of session categories $session->update(['session_categories' => $categoriesArray]); $instance->comment('Updated session ' . $session->id); } } } function updateGeneralSettingsWithSubmitterAbstractSection($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset ($generalSettings['submitter_abstract_section'])) { if ($event->slug_name == "future-energy-asia-2024") { $generalSettings['submitter_abstract_section']['request_to_edit'] = false; } else { $generalSettings['submitter_abstract_section']['request_to_edit'] = true; } $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function updateGeneralSettingsWithAwardsSubmissionSectionNewField($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['award_submission_section']['guidelines_for_award_section'])) { // $generalSettings['award_submission_section']['skip_submitter_nominee_form'] = false; $generalSettings['award_submission_section']['guidelines_for_award_section'] = false; $generalSettings['award_submission_section']['guidelines'] = false; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function sendSpeakerTermsToStrategicUsers($instance) { $eventSlug = 'gastech-2024'; $event = Event::whereSlugName($eventSlug)->first(); $users = $event->users()->distinct()->pluck('users.id'); $eventUsers = []; foreach ($users as $user) { // Retrieve the corresponding EventUser from the user $eventUser = getEventUser($event->id, $user); if ($eventUser && $eventUser->confirmed_speaker && !$eventUser->agreement_details && !$eventUser->agreement_status && $eventUser->type == 'strategic') { $userData = $eventUser->user; $eventUsers[] = $eventUser; $instance->comment('Updated event user ' . $eventUser->id); $instance->comment('Updated user ' . $userData->email); // Retrieve event profile data $profileData = $eventUser->event_profile_data; // Modify send adobe contract $profileData['send_adobe_contract'] = true; // Update event profile data $eventUser->event_profile_data = $profileData; // save event user $eventUser->save(); } } try { // Dispatch the job if there are strategic users if (!empty($eventUsers)) { dispatch(new SendSpeakerTerms($eventUsers)); } } catch (Exception $e) { // Log the error if dispatching the job fails $instance->error('Failed to dispatch job SendSpeakerTerms: ' . $e->getMessage()); } } function updateGeneralSettingsWithUserFormWithMinimalFields($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['dtcm_form_fields_section']['user_form_with_minimal_fields'])) { $generalSettings['dtcm_form_fields_section']['user_form_with_minimal_fields'] = false; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function addNewSystemEmailRegisterSubmitter($instance) { $events = Event::all(); foreach ($events as $event) { systemEmail::create([ 'event_id' => $event->id, 'mail_type' => 'user', 'title' => 'Submitter Register Email', 'description' => 'Send an email to the submitter after they register to the event', 'key' => 'submitter_register', 'recipient' => 'User', 'variables' => array( array("key" => "event_name", "value" => "Event name"), array("key" => "username", "value" => "Username"), array("key" => "user_email", "value" => "User Email"), array("key" => "submitter_login_link", "value" => "Submitter Login Link"), ), 'subject' => 'You have successfully registered your account', 'body' => '<p>Hi {username},<br/><br>You have successfully registered your account to submit your abstracts for the {event_name} conference. You can login to submit your abstract or amend your profile using the following details.</p><br><p>Link: {submitter_login_link} <br>Username: {user_email}<br><br>Thank you,<br>{event_name} Team<br></p>', 'status' => 1, ]); $instance->comment('New system event created for event ' . $event->id); } } function addNewFieldsToTheScoreFormSection($instance) { $events = Event::all(); foreach ($events as $event) { $scoreSettings = $event->score_settings->toArray(); if (isset($scoreSettings['scores']) && count($scoreSettings['scores']) === 3) { $scoreSettings['scores'] = array_merge($scoreSettings['scores'], generateNewScores(3)); } $event->score_settings = $scoreSettings; $event->save(); $instance->comment('Updated Score settings of event ' . $event->id); } } function generateNewScores($count) { $newScores = []; for ($i = 0; $i < $count; $i++) { $newScores[] = [ 'label' => '', 'description' => null, 'weightage' => null, ]; } return $newScores; } function addSessionUserOrderAndSlotUserOrder($instance) { // Get all events $events = Event::all(); foreach ($events as $event) { $sessions = Session::where('event_id', $event->id)->get(); if ($sessions->isNotEmpty()) { foreach ($sessions as $session) { // Handle session users ordering processSessionUsers($session); // Handle slot users ordering $slots = Slot::where('session_id', $session->id)->get(); if ($slots->isNotEmpty()) { foreach ($slots as $slot) { processSlotUsers($slot); } } $instance->comment('Order updated for session ' . $session->id); } } } } function processSessionUsers($session) { // Ensure distinct session users $sessionUsers = SessionUser::where('session_id', $session->id) ->distinct('user_id') ->get(); if ($sessionUsers->isNotEmpty()) { // Assign incremental order to session users $order = 1; foreach ($sessionUsers as $sessionUser) { $sessionUser->order = $order; $sessionUser->save(); $order++; } } } function processSlotUsers($slot) { // Ensure distinct slot users $slotUsers = SlotUser::where('slot_id', $slot->id) ->distinct('user_id') ->get(); if ($slotUsers->isNotEmpty()) { // Assign incremental order to slot users $order = 1; foreach ($slotUsers as $slotUser) { $slotUser->order = $order; $slotUser->save(); $order++; } } } function addEventSlugToAllPublishedSessions($instance) { // get all published sessions $sessions = PublishedSession::all(); foreach ($sessions as $session) { // Decode the published_data to manipulate it as an array $publishedData = $session->published_data; // Check if slug_name is missing or empty if (empty($publishedData['slug_name'])) { // Find the event using event_id from the session $event = Event::find($session->event_id); // If the event exists, get the slug_name if ($event) { // Add the slug_name to the published data $publishedData['slug_name'] = $event->slug_name; $session->published_data = $publishedData; $session->save(); } } $instance->comment('Slug name added to the published session ' . $session->id); } } function addThumbnailImageForAllUsers($instance) { // Get all users $users = User::all(); // Dispatch a job to process all users ProcessUserHeadshots::dispatch($users); $instance->comment('Job dispatched for processing thumbnails for all users.'); } function deleteThumbnailImageForAllUsers($instance) { // Get all users $users = User::all(); foreach ($users as $user) { // 1. Process the user's avatar if (isset($user->avatar['thumbnail_path'])) { $thumbnailPath = $user->avatar['thumbnail_path']; $thumbnailPath = str_replace('storage', 'public', $user->avatar['thumbnail_path']); // Delete the thumbnail image from storage if (Storage::exists($thumbnailPath)) { Storage::delete($thumbnailPath); } // Set the thumbnail path to null in the file record if file_id is set if (!empty($user->avatar['file_id'])) { $file = File::find($user->avatar['file_id']); if ($file) { $file->update(['thumbnail_path' => null]); } } // Remove thumbnail path from the user's avatar object $avatar = $user->avatar; unset($avatar['thumbnail_path']); $user->update(['avatar' => $avatar]); // Log the deletion Log::info("Deleted avatar thumbnail for user ID: {$user->id}"); } // 2. Process EventUser's verified avatar for the user $eventUsers = EventUser::where('user_id', $user->id)->get(); foreach ($eventUsers as $eventUser) { if (isset($eventUser->verified_data['avatar']['thumbnail_path'])) { $thumbnailPath = $eventUser->verified_data['avatar']['thumbnail_path']; // Delete the thumbnail image from storage if (Storage::exists($thumbnailPath)) { Storage::delete($thumbnailPath); } // Set the thumbnail path to null in the file record if file_id is set if (!empty($eventUser->verified_data['avatar']['file_id'])) { $file = File::find($eventUser->verified_data['avatar']['file_id']); if ($file) { $file->update(['thumbnail_path' => null]); } } // Remove thumbnail path from the event user's verified_data avatar $verifiedData = $eventUser->verified_data; unset($verifiedData['avatar']['thumbnail_path']); $eventUser->update(['verified_data' => $verifiedData]); // Log the deletion Log::info("Deleted verified avatar thumbnail for user ID: {$user->id}, event ID: {$eventUser->event_id}"); } } } // Notify completion $instance->comment('Job dispatched for deleting thumbnails for all users.'); } function addSessionRoomAndTrackFieldsSection($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['session_room_type_fields'])) { $generalSettings['session_room_type_fields']['enabled'] = false; $generalSettings['session_room_type_fields']['id'] = "session_room_type_fields"; $generalSettings['session_room_type_fields']['label'] = ""; $generalSettings['session_room_type_fields']['room_options'] = []; $generalSettings['session_room_type_fields']['type_track_options'] = []; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function addAmendSpeakerTermsSection($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['amend_speaker_terms_section'])) { $generalSettings['amend_speaker_terms_section']['id'] = "amend_speaker_terms_section"; $generalSettings['amend_speaker_terms_section']['enabled'] = false; $generalSettings['amend_speaker_terms_section']['checkboxes'] = []; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function addAmendSpeakerTermsSectionGuidelines($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (!isset($generalSettings['amend_speaker_terms_section']['guidelines'])) { $generalSettings['amend_speaker_terms_section']['guidelines'] = ""; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated General settings of event ' . $event->id); } } } function addOrderToSessionCategoriesAndOptions($instance) { $events = Event::all(); foreach ($events as $event) { $generalSettings = $event->general_settings->toArray(); if (isset($generalSettings['session_form_settings']['categories'])) { $categories = $generalSettings['session_form_settings']['categories']; foreach ($categories as $categoryIndex => &$category) { // Add default order to category if not already set if (!isset($category['order'])) { $category['order'] = $categoryIndex + 1; } // Add default order to options within the category if (isset($category['category_options']) && is_array($category['category_options'])) { foreach ($category['category_options'] as $optionIndex => &$option) { if (!isset($option['order'])) { $option['order'] = $optionIndex + 1; } } } } // Update the general settings with the modified categories $generalSettings['session_form_settings']['categories'] = $categories; $event->general_settings = $generalSettings; $event->save(); $instance->comment('Updated session categories and options for event ' . $event->id); } } } function updateSalutationInPublishedSessions($instance) { $publishedSessions = PublishedSession::all(); $updatedCount = 0; foreach ($publishedSessions as $publishedSession) { $publishedData = $publishedSession->published_data; $updated = false; // Update session users if (isset($publishedData['users'])) { foreach ($publishedData['users'] as &$user) { if (isset($user['salutation']) && $user['salutation'] === 'Prefer not to say') { $user['salutation'] = null; $updated = true; } } } // Update slot users if (isset($publishedData['slots'])) { foreach ($publishedData['slots'] as &$slot) { if (isset($slot['users'])) { foreach ($slot['users'] as &$user) { if (isset($user['salutation']) && $user['salutation'] === 'Prefer not to say') { $user['salutation'] = null; $updated = true; } } } } } if ($updated) { $publishedSession->published_data = $publishedData; $publishedSession->save(); $updatedCount++; $instance->comment('Updated published session ' . $publishedSession->id); } } $instance->comment('Updated ' . $updatedCount . ' published sessions'); } switch ($command) { case 'ticket-77': addAccessTokenToSpeakerTerms($this); case 'ticket-66': updateGeneralSettingsSpeakerTermsSettings($this); break; case 'ticket-82': addAbstractSubmissionFlag($this); break; case 'ticket-56': updatePlatformSettingsWithMySession($this); break; case 'ticket-65': addSubmitterSectionTopConfig($this); break; case 'ticket-33': addWrittenPaperTemplatesConfig($this); break; case 'ticket-40': addEventIdToPresenter($this); break; case 'ticket-43': countNoOfVotesForAbstracts($this); break; case 'ticket-8': addEnabledInCategoryAndSubcategory($this); break; case 'ticket-88': updateGeneralSettings($this); break; case 'add-general-settings': addGeneralSettings($this); break; case 'add-speaker-terms-settings': addSpeakerTermsSettings($this); break; case 'ticket-47': updatePlatformSettings($this); break; case 'ticket-127': addReviewerSectionTopConfig($this); break; case 'ticket-140': addRequestToEditGeneralSettings($this); break; case 'ticket-146': addJobTitleToVerifiedData($this); break; case 'ticket-132': addPresentationSubmissionDate($this); break; case 'ticket-138': updateGeneralSettingsWithTimeZoneSection($this); break; case 'ticket-173': updateGeneralSettingsWithDTCMFormFieldsSection($this); break; case 'ticket-102': updatePlatformSettingsWithSubmitterAbstractSection($this); break; case 'ticket-192': updateGeneralSettingsWithGTMScriptsSection($this); break; case 'ticket-300': updateGeneralSettingsWithGTM($this); break; case 'ticket-183': systemEmailsVariableSectionChanges($this); break; case 'ticket-203': updateFormSettingsWithSubSection($this); break; case 'ticket-203-dup': updateEventsWithNewCloneFormSettings($this); break; case 'ticket-183-dup': systemEmailsVariableSectionChangesWithTitle($this); break; case 'ticket-203-staging': updateEventsWithFormSettingsEnableOption($this); case 'ticket-214': updateFormSettingsWithTitleDisabledOption($this); break; case 'ticket-216': updateGeneralSettingsWithAwardsSubmissionSection($this); break; case 'ticket-211': updateGeneralSettingsWithSurveySettingsSection($this); break; case 'ticket-published-session': updatePublishedSessions($this); break; case 'ticket-89': updateEventUserWithColumnOrder($this); break; case 'ticket-206': addAbstractPresentationTrackToSlots($this); break; case 'ticket-206-slot': addNewSystemEmailPublishedSessionStatusChange($this); break; case 'ticket-242': changeSpeakerTermsForEventIEW($this); break; case 'ticket-246': addSessionFormSettingsToGeneralSettings($this); break; case 'ticket-239': addUserBioLimitSettingsToGeneralSettings($this); case 'ticket-session_category_array': sessionCategoryUpdateToArray($this); break; case 'ticket-272': updateGeneralSettingsWithSubmitterAbstractSection($this); break; case 'ticket-273': updateGeneralSettingsWithAwardsSubmissionSectionNewField($this); break; case 'ticket-305': sendSpeakerTermsToStrategicUsers($this); break; case 'ticket-285': addNewSystemEmailRegisterSubmitter($this); break; case 'ticket-314': updateGeneralSettingsWithUserFormWithMinimalFields($this); break; case 'ticket-308': addNewFieldsToTheScoreFormSection($this); break; case 'ticket-301': addSessionUserOrderAndSlotUserOrder($this); break; case 'ticket-330': addEventSlugToAllPublishedSessions($this); break; case 'ticket-328': addThumbnailImageForAllUsers($this); break; case 'ticket-328-delete': deleteThumbnailImageForAllUsers($this); break; addEventSlugToAllPublishedSessions($this); break; case 'ticket-336': addSessionRoomAndTrackFieldsSection($this); break; case 'ticket-350': addAmendSpeakerTermsSection($this); case 'ticket-350-new': addAmendSpeakerTermsSectionGuidelines($this); break; case 'ticket-335': addOrderToSessionCategoriesAndOptions($this); break; case 'ticket-370': updateSalutationInPublishedSessions($this); break; default: break; } }); Artisan::command('add-description-score-criteria', function () { $events = Event::all(); foreach ($events as $event) { $scoreSettings = $event->score_settings->toArray(); $scores = $scoreSettings['scores']; foreach ($scores as $key => $score) { $scores[$key]['description'] = null; } $scoreSettings['scores'] = $scores; $event->score_settings = $scoreSettings; $event->save(); $this->comment('Updated score settings of event ' . $event->id); } }); Artisan::command('remove-event-profile-array-null-data', function () { $eventUsers = EventUser::all(); foreach ($eventUsers as $eventUser) { $items = $eventUser->event_profile_data; if ($items) { foreach ($items as $key => $data) { if (is_array($data) && empty($data[0]) && $data !== []) { $items[$key] = []; $eventUser->event_profile_data = $items; $eventUser->save(); $this->comment('removed array of null data from event user ' . $eventUser->id); } } } } })->purpose('Remove array of null data from event profile data'); Artisan::command('select-event-profile-data-category-white-space', function () { $eventUsers = EventUser::all(); foreach ($eventUsers as $eventUser) { if (isset($eventUser->event_profile_data['category'])) { $items = $eventUser->event_profile_data; if ($items['category']) { foreach ($items['category'] as $key => $data) { if (strcmp(trim($data['value']), $data['value']) != 0) { $this->comment('white space found event user ' . $eventUser->id); } } } } } })->purpose('Select category with white space in the event user data'); Artisan::command('select-event-profile-data-subcategory-white-space', function () { $eventUsers = EventUser::all(); foreach ($eventUsers as $eventUser) { if (isset($eventUser->event_profile_data['subcategory'])) { $items = $eventUser->event_profile_data; if ($items['subcategory']) { foreach ($items['subcategory'] as $key => $data) { if (strcmp(trim($data['value']), $data['value']) != 0) { $this->comment('white space found event user ' . $eventUser->id); } } } } } })->purpose('Select subcategory with white space in the event user data'); Artisan::command('remove-event-profile-data-category-white-space', function () { $eventUsers = EventUser::all(); foreach ($eventUsers as $eventUser) { if (isset($eventUser->event_profile_data['category'])) { $items = $eventUser->event_profile_data; if ($items['category']) { $count = 0; foreach ($items['category'] as $key => $data) { if (strcmp(trim($data['value']), $data['value']) != 0) { $count = $count + 1; $items['category'][$key]['value'] = trim($data['value']); $items['category'][$key]['label'] = trim($data['label']); } } if ($count > 0) { $eventUser->event_profile_data = $items; $eventUser->save(); $this->comment('removed white spaces in the category of event user ' . $eventUser->id); } } } } })->purpose('Remove category with white space in the event user data'); Artisan::command('remove-event-profile-data-subcategory-white-space', function () { $eventUsers = EventUser::all(); foreach ($eventUsers as $eventUser) { if (isset($eventUser->event_profile_data['subcategory'])) { $items = $eventUser->event_profile_data; if ($items['subcategory']) { $count = 0; foreach ($items['subcategory'] as $key => $data) { if (strcmp(trim($data['value']), $data['value']) != 0) { $count = $count + 1; $items['subcategory'][$key]['value'] = trim($data['value']); $items['subcategory'][$key]['label'] = trim($data['label']); } } if ($count > 0) { $eventUser->event_profile_data = $items; $eventUser->save(); $this->comment('removed white spaces in the category of event user ' . $eventUser->id); } } } } })->purpose('Remove subcategory with white space in the event user data');
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 4
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
api.php
566 B
lrw-r--r--
2024-02-09 12:37:30
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
channels.php
558 B
lrw-r--r--
2024-02-09 12:37:30
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
console.php
73.49 KB
lrw-rw-r--
2025-12-10 06:13:17
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
web.php
18.52 KB
lrw-rw-r--
2026-04-22 04:32:10
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).