����JFIF��x�x����'
| Server IP : 78.140.185.180  /  Your IP : 216.73.216.38 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/././././././public_html/app/Console/Commands/  | 
Upload File :  | 
<?php namespace App\Console\Commands;
use App\Project;
use App\Services\ProjectRepository;
use App\Services\TemplateLoader;
use App\User;
use Artisan;
use Common\Auth\Permissions\Permission;
use Common\Localizations\Localization;
use Hash;
use Illuminate\Console\Command;
use Illuminate\Support\Collection;
class ResetDemoSite extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'demo:reset';
    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Reset demo site.';
    /**
     * @var User
     */
    private $user;
    /**
     * @var Localization
     */
    private $localization;
    /**
     * @var ProjectRepository
     */
    private $projectRepository;
    /**
     * @var Project
     */
    private $project;
    public function __construct(
        User $user,
        Localization $localization,
        ProjectRepository $projectRepository,
        Project $project
    ) {
        parent::__construct();
        $this->user = $user;
        $this->localization = $localization;
        $this->projectRepository = $projectRepository;
        $this->project = $project;
    }
    /**
     * @return void
     */
    public function handle()
    {
        if ( ! config('common.site.demo')) return;
        /** @var User $admin */
        $admin = $this->user->where('email', 'admin@admin.com')->firstOrFail();
        $admin->avatar = null;
        $admin->first_name = 'Demo';
        $admin->last_name = 'Admin';
        $admin->password = Hash::make('admin');
        $adminPermission = app(Permission::class)
            ->where('name', 'admin')
            ->first();
        $admin->permissions()->syncWithoutDetaching([$adminPermission->id]);
        $admin->save();
        $admin->subscriptions()->delete();
        //delete projects
        $this->project
            ->orderBy('id')
            ->chunk(50, function (Collection $projects) {
                $projects->each(function (Project $project) {
                    $this->projectRepository->delete($project);
                });
            });
        //create some demo projects
        app(TemplateLoader::class)
            ->loadAll()
            ->sortBy('updated_at', SORT_REGULAR, 'desc')
            ->take(9)
            ->reverse()
            ->values()
            ->each(function ($template, $key) use ($admin) {
                app(ProjectRepository::class)->create([
                    'name' => 'Demo ' . (9 - $key),
                    'userId' => $admin->id,
                    'template_name' => $template['name'],
                    'published' => true,
                    'updated_at' => now()->addMinutes($key),
                ]);
            });
        //delete localizations
        $this->localization->get()->each(function (Localization $localization) {
            if (strtolower($localization->name) !== 'english') {
                $localization->delete();
            }
        });
        Artisan::call('cache:clear');
        $this->info('Demo site reset.');
    }
}