$this->systemService->systemData(), 'socialMedia' => $this->socialMediaService->socialMediaData(), 'marketplace' => $this->marketplaceService->marketplaceData(), 'hr' => $this->hrSettingService->hrData(), 'homepage' => $this->homepageSettingService->homepageData(), 'hasPendingMarketplaceVerification' => OwnerVerificationRequest::query() ->where('subject_type', MarketplaceSettings::class) ->pending() ->exists(), ]); } public function updateSystem(SystemRequest $request): RedirectResponse { if (! $request->user()->can(Permission::OWNER_VERIFICATIONS_VERIFY->value)) { abort(403, 'Aksi ini tidak diizinkan.'); } $this->systemService->updateSystem($request->validated()); $this->flashSuccess('Pengaturan sistem berhasil disimpan.'); return redirect()->route('admin.system.settings.index'); } public function updateSocialMedia(SocialMediaRequest $request): RedirectResponse { if (! $request->user()->can(Permission::OWNER_VERIFICATIONS_VERIFY->value)) { abort(403, 'Aksi ini tidak diizinkan.'); } $this->socialMediaService->updateSocialMedia($request->validated()); $this->flashSuccess('Pengaturan media sosial berhasil disimpan.'); return redirect()->route('admin.system.settings.index'); } public function updateMarketplace(MarketplaceRequest $request): RedirectResponse { $this->marketplaceService->updateMarketplace($request->validated(), $request->user()); $hasPending = OwnerVerificationRequest::query() ->where('subject_type', MarketplaceSettings::class) ->pending() ->exists(); if ($hasPending) { $this->flashSuccess('Perubahan pengaturan marketplace berhasil diajukan dan menunggu verifikasi owner.'); } else { $this->flashSuccess('Pengaturan marketplace berhasil disimpan.'); } return redirect()->route('admin.system.settings.index'); } public function updateHr(HrSettingRequest $request): RedirectResponse { if (! $request->user()->can(Permission::OWNER_VERIFICATIONS_VERIFY->value)) { abort(403, 'Aksi ini tidak diizinkan.'); } $this->hrSettingService->updateHr($request->validated()); $this->flashSuccess('Pengaturan HR berhasil disimpan.'); return redirect()->route('admin.system.settings.index'); } public function updateHomepage(HomepageSettingRequest $request): RedirectResponse { if (! $request->user()->can(Permission::OWNER_VERIFICATIONS_VERIFY->value)) { abort(403, 'Aksi ini tidak diizinkan.'); } $this->homepageSettingService->updateHomepage($request->validated()); $this->flashSuccess('Pengaturan homepage berhasil disimpan.'); return redirect()->route('admin.system.settings.index'); } }