HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/iphim.naniguide.com/common/Workspaces/Actions/DeleteWorkspaces.php
<?php

namespace Common\Workspaces\Actions;

use Common\Workspaces\Events\WorkspaceDeleted;
use Common\Workspaces\Workspace;
use Common\Workspaces\WorkspaceMember;

class DeleteWorkspaces
{
    /**
     * @var Workspace
     */
    private $workspace;

    public function __construct(Workspace $workspace)
    {
        $this->workspace = $workspace;
    }

    public function execute($ids)
    {
        $workspaces = $this->workspace->whereIn('id', $ids)->get();

        $workspaces->each(function(Workspace $workspace) {
            $workspace->invites()->delete();
            $workspace->members->each(function (WorkspaceMember $member) use($workspace) {
                app(RemoveMemberFromWorkspace::class)->execute($workspace, $member->id);
            });
            event(new WorkspaceDeleted($workspace->id, $workspace->owner_id));
        });

        $this->workspace->whereIn('id', $ids)->delete();
    }

}