Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/syn.corals.io/Corals/modules/Utility/Classes/Schedule/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/syn.corals.io/Corals/modules/Utility/Classes/Schedule/ScheduleManager.php
<?php

namespace Corals\Modules\Utility\Classes\Schedule;

use Carbon\Carbon;
use Corals\Modules\Utility\Models\Schedule\Schedule as ScheduleModel;


class ScheduleManager
{

    protected $instance;

    public function __construct($instance)
    {
        $this->instance = $instance;

    }

    public function createSchedule($schedule, $user = null)
    {
        if (!$user) {
            $user = user();
        }
        foreach ($schedule ?? [] as $day => $value) {
            $data_schedules = [
                'scheduleable_id' => $this->instance->id,
                'scheduleable_type' => getMorphAlias($this->instance),
                'user_id' => $user->id,
                'day_of_the_week' => $day,
                'start_time' => $value['start'] == 'Off' ? null : Carbon::createFromFormat('H', $value['start']),
                'end_time' => $value['end'] == 'Off' ? null : Carbon::createFromFormat('H', $value['end']),
            ];
            ScheduleModel::create($data_schedules);
        }
    }

    public function getSchedule()
    {
        $schedules = [];

        foreach (\Settings::get('utility_days_of_the_week', []) as $key => $day) {
            $schedules = array_merge($schedules, [
                $key => [
                    'start' => in_array($key, ['Sat', 'Sun']) ? 'Off' : '08',
                    'end' => in_array($key, ['Sat', 'Sun']) ? 'Off' : '17',
                ]
            ]);
        }

        if ($this->instance) {
            foreach ($this->instance->schedules as $schedule) {
                $schedules[$schedule->day_of_the_week] = [
                    'start' => is_null($schedule->start_time) ? 'Off' : Carbon::createFromFormat('H:i:s', $schedule->start_time)->format('H'),
                    'end' => is_null($schedule->end_time) ? 'Off' : Carbon::createFromFormat('H:i:s', $schedule->end_time)->format('H'),
                ];
            }
        }
        return $schedules;

    }

    public function updateSchedule($schedule)
    {
        foreach ($schedule ?? [] as $day => $value) {
            $this->instance->schedules()->updateOrCreate(['day_of_the_week' => $day], [
                'start_time' => $value['start'] == 'Off' ? null : Carbon::createFromFormat('H', $value['start']),
                'end_time' => $value['end'] == 'Off' ? null : Carbon::createFromFormat('H', $value['end']),
            ]);
        }
    }

}

Spamworldpro Mini