namespaceApp\Jobs\Account;useApp\Events\Account\AccountCreated;useApp\Jobs\Company\CreateCompany;useApp\Jobs\Company\CreateCompanyToken;useApp\Jobs\User\CreateUser;useApp\Models\Account;useApp\Models\User;useApp\Notifications\Ninja\NewAccountCreated;useApp\Utils\Ninja;useApp\Utils\Traits\UserSessionAttributes;useIlluminate\Foundation\Bus\Dispatchable;useIlluminate\Http\Request;useIlluminate\Support\Facades\Auth;useIlluminate\Support\Facades\Log;useIlluminate\Support\Facades\Notification;useSymfony\Component\HttpFoundation\Response;classCreateAccount{useDispatchable;protected$request;publicfunction__construct(array$sp660339){$this->request=$sp660339;}publicfunctionhandle(){if(config('ninja.environment')=='selfhost'&&Account::all()->count()>1){returnresponse()->json(array('message'=>'Self hosted installation limited to one account'),400);}elseif(Ninja::boot()){returnresponse()->json(array('message'=>Ninja::parse()),401);}$sp794f3f=Account::create($this->request);$sp035a66=CreateCompany::dispatchNow($this->request,$sp794f3f);$sp035a66->load('account');$sp794f3f->default_company_id=$sp035a66->id;$sp794f3f->save();$spaa9f78=CreateUser::dispatchNow($this->request,$sp794f3f,$sp035a66,true);if($spaa9f78){auth()->login($spaa9f78,false);}$spaa9f78->setCompany($sp035a66);$spafe62e=isset($this->request['token_name'])?$this->request['token_name']:request()->server('HTTP_USER_AGENT');$sp2d97e8=CreateCompanyToken::dispatchNow($sp035a66,$spaa9f78,$spafe62e);if($spaa9f78){event(newAccountCreated($spaa9f78));}$spaa9f78->fresh();$sp035a66->notification(newNewAccountCreated($spaa9f78,$sp035a66))->ninja();return$sp794f3f;}}