消える飛行機雲 僕たちは見送った 眩しくて逃げた いつだって弱くて あの日から変わらず いつまでも変わらずに いられなかったこと 悔しくて指を離す あの鳥は まだ うまく飛べないけど いつかは 風を切って知る 届かない場所が まだ遠くにある 願いだけ秘めて 見つめてる 子供たちは 夏の線路 歩く 吹く風に素足をさらして 遠くには幼かった日びを 両手には 飛び立つ希望を 消える飛行機雲 追いかけて 追いかけて この丘を越えた あの日から変わらず いつまでも 真っ直ぐに 僕たちはあるように わたつみのような 強さを守れるよ きっと ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!PK8\?̑ Kernel.phpnu[ [ \App\Http\Middleware\DetectRegion::class, \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ], 'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, \Illuminate\Routing\Middleware\ThrottleRequests::class.':api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], ]; /** * The application's middleware aliases. * * Aliases may be used to conveniently assign middleware to routes and groups. * * @var array */ protected $middlewareAliases = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class, 'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class, 'valid.user' => \App\Http\Middleware\CheckUserIsValid::class, 'subscription' => \App\Http\Middleware\CheckSubscription::class, 'vcardSubscription' => \App\Http\Middleware\CheckVcardSubscription::class, 'multi_tenant' => \App\Http\Middleware\MultiTenantMiddleware::class, 'xss' => XSS::class, 'language' => \App\Http\Middleware\languageChangeMiddleware::class, 'analytics' => \App\Http\Middleware\Analytics::class, 'setLanguage' => SetLanguage::class, 'checkVcardEdit' => checkVcardEdit::class, 'checkVcardAnalyst' => CheckVcardAnalytics::class, 'checkVcardEnquiry' => CheckVcardEnquiry::class, 'freshInstall' => \App\Http\Middleware\FreshInstall::class, ]; } PK8\|string> */ public function rules(): array { return Blog::$rules; } } PK8\%н!Requests/UpdateSettingRequest.phpnu[payment_gateway; $rules = Setting::$rules; $rules['email'] = 'required|email:filter'; $rules['address'] = 'required'; $rules['home_page_banner'] = 'nullable|mimes:jpg,jpeg,png'; $rules['affiliation_amount'] = 'numeric|min:1'; if (isset($paymentGateways[Plan::STRIPE])) { $rules['stripe_key'] = 'required'; $rules['stripe_secret'] = 'required'; } if (isset($paymentGateways[Plan::PAYPAL])) { $rules['paypal_client_id'] = 'required'; $rules['paypal_secret'] = 'required'; } if (isset($paymentGateways[Plan::RAZORPAY])) { $rules['razorpay_key'] = 'required'; $rules['razorpay_secret'] = 'required'; } return $rules; } } PK8\gg&Requests/UpdateVcardServiceRequest.phpnu[ 'The name field is required.', 'description.string' => 'The description field is required.', // 'service_url.url' => 'The Service URL must be a valid URL' ]; } } PK8\IUDRequests/HomeBannerRequest.phpnu[ */ public function rules(): array { $rules = [ 'banner_url' => 'url', 'banner_title' => 'required|string', 'banner_description' => 'required|string', 'banner_button' => 'required|string', ]; return $rules; } public function messages(): array { return [ 'banner_url.url' => (__('messages.flash.url_required')), ]; } } PK8\"P"Requests/CreateFrontFaqRequest.phpnu[|string> */ public function rules(): array { $rules = Iframe::$rules; return $rules; } public function messages(): array { return [ 'url.required' => (('messages.flash.url_required')), 'url.url' => (('messages.flash.url_is_valid')), ]; } } PK8\пSSRequests/CreateEcardRequest.phpnu[ 'required', 'first_name' => 'required|max:10', 'last_name' => 'required|max:10', 'email' => 'required|email:filter', 'occupation' => 'required|max:20', 'phone' => 'required|numeric', 'location' => 'required', 'website' => 'required', 'ecard-logo' => 'required|image|mimes:jpeg,png,jpg|dimensions:width=150,height=150', ]; } /** * Get the validation rules that apply to the request. */ public function messages(): array { return [ 'vcard_id.required' => __('messages.common.vcard_name_required'), ]; } } PK8\"DvvRequests/ProductBuyRequest.phpnu[ */ public function rules(): array { $product = Product::whereId($this->product_id)->first(); $dynamicRules = [ 'name' => 'required', 'email' => 'required|email:filter', 'address' => 'required', 'payment_method' => 'required', ]; if (!empty($product->vcard->privacy_policy) || !empty($product->vcard->term_condition)) { $dynamicRules['product_terms'] = 'required'; } return $dynamicRules; } public function messages(): array { return [ 'product_terms' => (__('messages.placeholder.agree_term')), ]; } } PK8\?}>>"Requests/UpdateFrontCmsRequest.phpnu[ 'required', 'sub_text' => 'required', 'home_page_banner' => 'mimes:jpg,jpeg,png', 'website_link' => 'nullable|url', 'facebook_link' => 'nullable|url', 'youtube_link' => 'nullable|url', 'reddit_link' => 'nullable|url', 'whatsapp_link' => 'nullable|url', 'tiktok_link' => 'nullable|url', 'twitter_link' => 'nullable|url', 'instagram_link' => 'nullable|url', 'tumbir_link' => 'nullable|url', 'linkedin_link' => 'nullable|url', 'pinterest_link' => 'nullable|url', ]; } } PK8\CdttRequests/UpdateBlogRequest.phpnu[|string> */ public function rules(): array { Blog::$rules['blog_image'] = 'nullable|mimes:jpg,jpeg,png'; return Blog::$rules; } } PK8\C*Requests/UpdateFrontTestimonialRequest.phpnu[ 'The name field is required.', 'description.string' => 'The description field is required.', ]; } } PK8\[Requests/UpdatePlanRequest.phpnu[route('plan'); if (!$this->custom_select && !$this->custom_vcard_number) { $rules['price'] = 'required|numeric'; $rules['no_of_vcards'] = 'required|integer|min:1'; } else { $rules['custom_vcard_number'] = 'required|min:1'; } return $rules; } public function messages() { return [ 'custom_vcard_number.*.required_if' => 'The custom vcard numbert is required.', 'custom_vcard_price.*.required_if' => 'The custom vcard price is required.', ]; } } PK8\ .BB$Requests/UpdateCustomLinkRequest.phpnu[|string> */ public function rules(): array { return CustomLink::$rules; } } PK8\z Requests/CreateVcardRequest.phpnu[ __('messages.vcard.alias_url_required'), 'name.string' => __('messages.vcard.vcard_name_required'), 'url_alias.min' => __('messages.vcard.alias_url_min'), 'url_alias.max' => __('messages.vcard.alias_url_max'), 'url_alias.unique' => __('messages.vcard.alias_url_unique'), 'cover_img.max' => __('messages.vcard.cover_img_max'), ]; } } PK8\N)+Requests/CreateEmailSubscriptionRequest.phpnu[ __('messages.placeholder.email_already_subscribed'), ]; } } PK8\+#Requests/CreateVcardBlogRequest.phpnu[ 'The name field is required.', 'description.string' => 'The description field is required.', ]; } } PK8\/hۢRequests/CreatePlanRequest.phpnu[custom_select) { $rules['no_of_vcards'] = 'required|integer|min:1'; $rules['price'] = 'required|numeric'; } else { $rules['custom_vcard_number'] = 'required|min:1'; } return $rules; } public function messages() { return [ 'custom_vcard_number.*.required' => 'The custom vcard number field is required.', 'custom_vcard_number.*.numeric' => 'The custom vcard number must be a number.', 'custom_vcard_price.*.required' => 'The custom vcard price field is required.', 'custom_vcard_price.*.numeric' => 'The custom vcard price must be a number.', ]; } } PK8\!Requests/UpdateProductRequest.phpnu[ __('messages.vcard.product_name_string'), 'currency_id.required_with' => __('messages.vcard.currency_id_required_with'), ]; } } PK8\XZYY(Requests/createWithdrawAmountRequest.phpnu[ */ public function rules(): array { return [ 'amount' => 'required|numeric|gt:0', // 'paypal_email' => 'email|regex:/(.*)@(.*)\.(.*)/', ]; } } PK8\)!Requests/AddCouponCodeRequest.phpnu[ */ public function rules(): array { return [ 'coupon_name' => 'required|max:50|regex:/[a-zA-Z]/|unique:coupon_codes,coupon_name', 'type' => 'required', 'discount' => 'required|numeric|min:1', 'expire_at' => 'required', ]; } public function messages(): array { return [ 'coupon_name.regex' => __('messages.coupon_code.coupon_name_regex'), 'discount.min' => __('messages.coupon_code.coupon_discount_validation'), ]; } } PK8\0!Requests/UpdatePaymentRequest.phpnu[ */ public function rules(): array { $rules = []; $paymentGateways = request()->payment_gateway; if (isset($paymentGateways[Plan::STRIPE])) { $rules['stripe_key'] = 'required'; $rules['stripe_secret'] = 'required'; } if (isset($paymentGateways[Plan::PAYPAL])) { $rules['paypal_client_id'] = 'required'; $rules['paypal_secret'] = 'required'; } if (isset($paymentGateways[Plan::RAZORPAY])) { $rules['razorpay_key'] = 'required'; $rules['razorpay_secret'] = 'required'; } if (isset($paymentGateways[Plan::PAYSTACK])) { $rules['paystack_key'] = 'required'; $rules['paystack_secret'] = 'required'; } if (isset($paymentGateways[Plan::FLUTTERWAVE])) { $rules['flutterwave_key'] = 'required'; $rules['flutterwave_secret'] = 'required'; } if (isset($paymentGateways[Plan::PHONEPE])) { $rules['phonepe_merchant_id'] = 'required'; $rules['phonepe_merchant_user_id'] = 'required'; $rules['phonepe_env'] = 'required'; $rules['phonepe_salt_key'] = 'required'; $rules['phonepe_salt_index'] = 'required'; } return $rules; } } PK8\$~amm"Requests/CreateLanguageRequest.phpnu[ 'The title field is required.', 'title.*.max' => 'The title not be greater then 100 characters.', 'description.*.string' => 'The description field is required.', 'description.*.max' => 'The description not be greater then 500 characters.', ]; } } PK8\!Requests/UpdateNfcCardRequest.phpnu[ */ public function rules(): array { $rules = Nfc::$rules; $rules['nfc_img'] = 'nullable|mimes:jpg,jpeg,png'; $rules['nfc_back_img'] = 'nullable|mimes:jpg,jpeg,png'; return $rules; } } PK8\Ҧ9$Requests/HomePageSettingRrequest.phpnu[ */ public function rules(): array { $rules['app_logo'] = 'nullable|mimes:jpg,jpeg,png|dimensions:max_width=60,max_height=90'; $rules['favicon'] = 'nullable|mimes:jpg,jpeg,png|dimensions:max_width=16,max_height=16'; $rules['register_image'] = 'nullable|mimes:jpg,jpeg,png|dimensions:max_width=16,max_height=16'; $rules['dashboard_logo'] = 'nullable|mimes:jpg,jpeg,png|dimensions:max_width=60,max_height=60'; return $rules; } } PK8\yd%Requests/UpdateUserProfileRequest.phpnu[|string> */ public function rules(): array { return MailSetting::$rules; } } PK8\)ZllRequests/CreateUserRequest.phpnu[|string> */ public function rules(): array { $rules = ContactRequest::$rules; if (Auth::check()) { $rules['phone'] = 'nullable|numeric'; $rules['email'] = ['nullable']; } return $rules; } } PK8\݊(Requests/UpdateInstagramEmbedRequest.phpnu[route()->id; $rules['iso_code'] = 'required|max:2|min:2|unique:languages,iso_code,'.$this->route()->id; return $rules; } public function messages(): array { $messages['iso_code.required'] = 'The ISO Code field is required.'; return $messages; } } PK8\VH1$Requests/UpdateCouponCodeRequest.phpnu[ */ public function rules(): array { return [ 'coupon_name' => 'required|max:50|regex:/[a-zA-Z]/|unique:coupon_codes,coupon_name,' . request()->id, 'type' => 'required', 'discount' => 'required|numeric|min:1', 'expire_at' => 'required', ]; } public function messages(): array { return [ 'coupon_name.regex' => __('messages.coupon_code.coupon_name_regex'), 'discount.min' => __('messages.coupon_code.coupon_discount_validation'), ]; } } PK8\_9%Requests/UpdateTestimonialRequest.phpnu[ (__('messages.flash.name_is_required')), 'description.string' =>(__('messages.flash.decription_is_required')), ]; } } PK8\SdRequests/UpdateUserRequest.phpnu[route('user') !== null ? $this->route('user')->id : $this->route('admin'); $rules = User::$rules; $rules['profile'] = 'mimes:jpg,bmp,png,apng,avif,jpeg,'; $rules['email'] = 'required|email|regex:/(.*)@(.*)\.(.*)/|unique:users,email,'.$requestId; return $rules; } } PK8\< Requests/CreateiframeRequest.phpnu[|string> */ public function rules(): array { return Iframe::$rules; } public function messages(): array { return [ 'url.required' => (__('messages.flash.url_required')), 'url.url' => (__('messages.flash.url_is_valid')), ]; } } PK8\xO%Requests/CreateTestimonialRequest.phpnu[ (__('messages.flash.name_is_required')), 'description.string' => (__('messages.flash.decription_is_required')), ]; } } PK8\^=Requests/NfcOrderRequest.phpnu[ */ public function rules(): array { return NfcOrders::$rules; } public function messages(): array { return [ 'card_type.required' => (__('messages.nfc.select_card')), 'vcard_id.required' => (__('messages.nfc.required_vcard')), 'vcard_id.integer' => (__('messages.nfc.required_vcard')), 'logo' => (__('messages.nfc.required_logo')), 'phone.integer' => (__('messages.nfc.required_phone')), ]; } } PK8\>ղn*Requests/CreateEmailSubscribersRequest.phpnu[ */ public function rules(): array { return VcardEmailSubscription::$rules; } public function messages(): array { return [ 'email' => (__('messages.flash.email_required')), ]; } } PK8\-*Requests/CreateFrontTestimonialRequest.phpnu[ 'The name field is required.', 'description.string' => 'The description field is required.', ]; } } PK8\::!Requests/CreateGalleryRequest.phpnu[type == Gallery::TYPE_IMAGE) { $rules['image'] = 'mimes:jpg,png,jpeg,webp|required'; } if ($this->type == Gallery::TYPE_FILE) { $rules['gallery_upload_file'] = 'file|mimes:txt,xls,xlsx,csv,xml,pdf,doc,docx|required'; } if ($this->type == Gallery::TYPE_VIDEO) { $rules['video_file'] = 'file|mimes:mpeg,ogg,mp4,webm,3gp,mov,flv,avi,wmv,ts|max:100040|required'; } if ($this->type == Gallery::TYPE_AUDIO) { $rules['audio_file'] = 'mimes:mp3,wav,ogg|max:100040|required'; } return $rules; } } PK8\/-Requests/CreateScheduleAppointmentRequest.phpnu[ 'Phone must be a number', ]; } } PK8\VRequests/CreateNfcRequest.phpnu[ */ public function rules(): array { return Nfc::$rules; } public function messages(): array { return [ 'nfc_img' => (__('messages.nfc.nfc_image_required')), 'nfc_back_img' => (__('messages.nfc.nfc_back_image_required')), ]; } } PK8\E Requests/UpdateRoleRequest.phpnu[ 'Name field is required', 'permission_id.required' => 'Please select any one permission', ]; } } PK8\Š0cc(Requests/UpdateChangePasswordRequest.phpnu[ 'required', 'new_password' => 'required|min:8|same:confirm_password', 'confirm_password' => 'required|min:8', ]; } } PK8\9!Requests/CreateProductRequest.phpnu[ __('messages.vcard.product_name_string'), 'currency_id.required_with' => __('messages.vcard.currency_id_required_with'), ]; } } PK8\e##Requests/UpdateCityRequest.phpnu[route('city')->id; return $rules; } } PK8\EPiRequests/CreateStateRequest.phpnu[ */ public function rules(): array { return [ 'email' => ['required', 'string', 'email'], 'password' => ['required', 'string'], ]; } /** * Attempt to authenticate the request's credentials. * * @throws \Illuminate\Validation\ValidationException */ public function authenticate(): void { $this->ensureIsNotRateLimited(); if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) { RateLimiter::hit($this->throttleKey()); throw ValidationException::withMessages([ 'email' => trans('auth.failed'), ]); } RateLimiter::clear($this->throttleKey()); } /** * Ensure the login request is not rate limited. * * @throws \Illuminate\Validation\ValidationException */ public function ensureIsNotRateLimited(): void { if (! RateLimiter::tooManyAttempts($this->throttleKey(), 5)) { return; } event(new Lockout($this)); $seconds = RateLimiter::availableIn($this->throttleKey()); throw ValidationException::withMessages([ 'email' => trans('auth.throttle', [ 'seconds' => $seconds, 'minutes' => ceil($seconds / 60), ]), ]); } /** * Get the rate limiting throttle key for the request. */ public function throttleKey(): string { return Str::transliterate(Str::lower($this->input('email')).'|'.$this->ip()); } } PK8\QpRequests/Auth/error_lognu[[16-Jun-2026 08:06:07 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/Auth/LoginRequest.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/Auth/LoginRequest.php on line 12 [18-Jun-2026 08:23:47 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/Auth/LoginRequest.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/Auth/LoginRequest.php on line 12 [20-Jun-2026 23:21:34 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/Auth/LoginRequest.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/Auth/LoginRequest.php on line 12 [17-Jul-2026 04:19:55 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/Auth/LoginRequest.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/Auth/LoginRequest.php on line 12 PK8\w|99%Requests/UpdateUserSettingRequest.phpnu[ */ public function rules(): array { return [ 'pwa_icon' => 'image|mimes:jpeg,png,jpg|dimensions:width=512,height=512', ]; } } PK8\6VV&Requests/CreateVcardServiceRequest.phpnu[ 'The name field is required.', 'description.string' => 'The description field is required.', // 'service_url.url' => 'The Service URL must be a valid URL' 'service_icon' => (__('messages.flash.vcard_service_icon')), ]; } } PK8\P:BB$Requests/CreateCustomLinkRequest.phpnu[|string> */ public function rules(): array { return CustomLink::$rules; } } PK8\000"Requests/CreateRegisterRequest.phpnu[ __('messages.placeholder.agree_term'), 'g-recaptcha-response.required' => __('messages.placeholder.required_captcha'), ]; } } PK8\tt!Requests/UpdateCountryRequest.phpnu[route('country')->id; $rules['short_code'] = $rules['short_code'].$this->route('country')->id; $rules['phone_code'] = $rules['phone_code'].$this->route('country')->id; return $rules; } public function messages(): array { return [ 'short_code.alpha' => __('messages.placeholder.short_code_only_alpha'), ]; } } PK8\3 Q Requests/CreateBannerRequest.phpnu[ */ public function rules(): array { return Banner::$rules; } public function messages(): array { return [ 'url.url' => (__('messages.flash.url_required')), ]; } } PK8\wdRequests/MobileRequest.phpnu[ */ public function rules(): array { $rules = [ 'mobile_app_enable' => 'boolean', ]; if ($this->input('mobile_app_enable')) { if ($this->input('play_store_link') == null && $this->input('app_store_link') == null) { $rules['play_store_link'] = 'required'; } else { $rules['play_store_link'] = ''; } if ($this->input('play_store_link') != null) { $rules['play_store_link'] .= '|url'; } if ($this->input('app_store_link') != null) { if (!isset($rules['app_store_link'])) { $rules['app_store_link'] = ''; } $rules['app_store_link'] .= '|url'; } } return $rules; } public function messages() { return [ 'play_store_link.url' => __('messages.play_store_url'), 'app_store_link.url' => __('messages.app_store_url'), ]; } } PK8\ss!Requests/CreateCountryRequest.phpnu[ __('messages.placeholder.short_code_only_alpha'), ]; } } PK8\Q;[I!Requests/CreateContactRequest.phpnu[route('state')->id; return $rules; } } PK8\m6=!!!Requests/UpdateFeatureRequest.phpnu[vcard->privacy_policy) || !empty($this->vcard->term_condition)) { $dynamicRules['terms_condition'] = 'required'; } if (getUserSettingValue('enable_attachment_for_inquiry', $this->vcard->user->id) === '1') { $dynamicRules['attachment'] = 'mimes:jpg,png,jpeg'; } return $dynamicRules; } public function messages(): array { return [ 'terms_condition' => (__('messages.placeholder.agree_term')), ]; } } PK8\lgg!Requests/UpdateGalleryRequest.phpnu[route('gallery')->id)->first(); $rule = 'mimes:jpg,png,jpeg,webp'; $rule1 = 'file|mimes:txt,xls,xlsx,csv,xml,pdf,doc,docx'; if ($gallery->type != $this->type) { $rule = 'required|mimes:jpg,png,jpeg,webp'; $rule1 = 'required|file|mimes:txt,xls,xlsx,csv,xml,pdf,doc,docx'; } if ($this->type == Gallery::TYPE_IMAGE) { $rules['image'] = $rule; } if ($this->type == Gallery::TYPE_FILE) { $rules['gallery_upload_file'] = $rule1; } if ($this->type == Gallery::TYPE_VIDEO) { $rules['video_file'] = 'file|mimes:mpeg,ogg,mp4,webm,3gp,mov,flv,avi,wmv,ts|max:100040|required'; } if ($this->type == Gallery::TYPE_AUDIO) { $rules['audio_file'] = 'mimes:mp3,wav,ogg|max:100040|required'; } return $rules; } } PK8\mGo(Requests/CreateInstagramEmbedRequest.phpnu[ 'The name field is required.', 'description.string' => 'The description field is required.', ]; } } PK8\Gv33&Requests/UpdateUserPasswordRequest.phpnu[ 'required|min:8|same:confirm_password', 'confirm_password' => 'required|min:8', ]; } } PK8\ IIRequests/SendMailRequest.phpnu[ */ public function rules(): array { $rules = SendEmail::$rules; return $rules; } } PK8\>Requests/CreateRoleRequest.phpnu[ 'Name field is required', 'permission_id.required' => 'Please select any one permission', ]; } } PK8\DRequests/UpdateVcardRequest.phpnu[route('vcard')->id; $rules['current_password'] = 'nullable|min:6'; $rules['profile_img'] = 'mimes:jpg,bmp,png,apng,avif,jpeg,'; $rules['cover_img'] = 'mimes:jpg,bmp,png,apng,avif,jpeg,mp4,mpeg,ogg,webm,3gp,mov,flv,avi,wmv,ts|max:10240'; $rules['qr_code_download_size'] = ['numeric', 'in:100,200,300,400,500']; if ($this->input('location_type') == 0) { $rules['location_url'] = 'nullable|url'; } else { $rules['iframe_content'] = 'nullable|string'; } return $rules; } public function messages(): array { return [ 'url_alias.string' => __('messages.vcard.alias_url_required'), 'name.string' => __('messages.vcard.vcard_name_required'), 'url_alias.min' => __('messages.vcard.alias_url_min'), 'url_alias.max' => __('messages.vcard.alias_url_max'), 'url_alias.unique' => __('messages.vcard.alias_url_unique'), 'occupation.string' => 'The occupation field is required.', 'description.string' => ' The description field is required.', 'first_name.string' => ('messages.vcard.first_name_required'), 'last_name.string' => ('messages.vcard.last_name_required'), 'is_paid' => __('messages.vcard.is_paid'), 'cover_img.max' => __('messages.vcard.cover_img_max'), ]; } } PK8\s^^ Controllers/PaypalController.phpnu[subscriptionRepository = $subscriptionRepository; } /** * @throws Throwable * @throws HttpException */ public function onBoard(Request $request): JsonResponse { $plan = Plan::with('currency')->findOrFail($request->planId); if ($plan->currency->currency_code != null && ! in_array( strtoupper($plan->currency->currency_code), getPayPalSupportedCurrencies() )) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported')); } $data = $this->subscriptionRepository->manageSubscription($request->all()); if (! isset($data['plan'])) { // 0 amount plan or try to switch the plan if it is in trial mode // returning from here if the plan is free. if (isset($data['status']) && $data['status'] == true) { return $this->sendSuccess($data['subscriptionPlan']->name . ' ' . __('messages.subscription_pricing_plans.has_been_subscribed')); } else { if (isset($data['status']) && $data['status'] == false) { return $this->sendError(__('messages.placeholder.cannot_switch_to_zero')); } } } $subscriptionsPricingPlan = $data['plan']; $subscription = $data['subscription']; $mode = getSelectedPaymentGateway('paypal_mode'); $clientId = getSelectedPaymentGateway('paypal_client_id'); $clientSecret = getSelectedPaymentGateway('paypal_secret'); config([ 'paypal.mode' => $mode, 'paypal.sandbox.client_id' => $clientId, 'paypal.sandbox.client_secret' => $clientSecret, 'paypal.live.client_id' => $clientId, 'paypal.live.client_secret' => $clientSecret, ]); $provider = new PayPalClient(); $provider->getAccessToken(); $data = [ 'intent' => 'CAPTURE', 'purchase_units' => [ [ 'reference_id' => $subscription->id, 'amount' => [ 'value' => $data['amountToPay'], 'currency_code' => $subscription->plan->currency->currency_code, ], ], ], 'application_context' => [ 'cancel_url' => route('paypal.failed'), 'return_url' => route('paypal.success'), ], ]; $order = $provider->createOrder($data); return response()->json(['link' => $order['links'][1]['href'], 'status' => 200]); } /** * @throws HttpException * @throws HttpException|Throwable */ public function userOnBoard($userId, $vcard, $input): JsonResponse { $amount = $input['amount']; $currencyCode = $input['currency_code']; $mode = getUserSettingValue('paypal_mode', $userId); $clientId = getUserSettingValue('paypal_client_id', $userId); $clientSecret = getUserSettingValue('paypal_secret', $userId); config([ 'paypal.mode' => $mode, 'paypal.sandbox.client_id' => $clientId, 'paypal.sandbox.client_secret' => $clientSecret, 'paypal.live.client_id' => $clientId, 'paypal.live.client_secret' => $clientSecret, ]); $provider = new PayPalClient(); $provider->getAccessToken(); $data = [ 'intent' => 'CAPTURE', 'purchase_units' => [ [ 'reference_id' => $vcard->id, 'amount' => [ 'value' => $amount, 'currency_code' => $currencyCode, ], ], ], 'application_context' => [ 'cancel_url' => route('user.paypal.failed'), 'return_url' => route('user.paypal.success'), ], ]; $order = $provider->createOrder($data); session()->put(['appointment_details' => $input]); session(['vcard_user_id' => $userId, 'tenant_id' => $vcard->tenant->id, 'vcard_id' => $vcard->id]); return response()->json(['link' => $order['links'][1]['href'], 'status' => 200]); } /** * @return Application|RedirectResponse|Redirector|void * * @throws IOException * @throws \Psr\Container\ContainerExceptionInterface * @throws \Psr\Container\NotFoundExceptionInterface|Throwable */ public function userSuccess(Request $request): RedirectResponse { $userId = session()->get('vcard_user_id'); $clientId = getUserSettingValue('paypal_client_id', $userId); $clientSecret = getUserSettingValue('paypal_secret', $userId); $mode = getUserSettingValue('paypal_mode', $userId); $currencyCode = Currency::whereId(getUserSettingValue('currency_id', $userId))->first(); $config = [ 'mode' => $mode, // Can only be 'sandbox' Or 'live'. If empty or invalid, 'live' will be used. $mode => [ 'client_id' => $clientId, 'client_secret' => $clientSecret, ], 'payment_action' => config('paypal.payment_action'), // Can only be 'Sale', 'Authorization' or 'Order' 'currency' => $currencyCode->currency_code, 'notify_url' => config('paypal.notify_url'), // Change this accordingly for your application. 'locale' => config('paypal.locale'), // force gateway language i.e. it_IT, es_ES, en_US ... (for express checkout only) 'validate_ssl' => config('paypal.validate_ssl'), // Validate SSL when creating api client. ]; config([ 'paypal.mode' => $mode, 'paypal.sandbox.client_id' => $clientId, 'paypal.sandbox.client_secret' => $clientSecret, 'paypal.live.client_id' => $clientId, 'paypal.live.client_secret' => $clientSecret, ]); $provider = new PayPalClient; $provider->getAccessToken(); $token = $request->get('token'); $orderInfo = $provider->showOrderDetails($token); try { // Call API with your client and get a response for your call $response = $provider->capturePaymentOrder($token); // If call returns body in response, you can get the deserialized version from the result attribute of the response $vcardId = $response['purchase_units'][0]['reference_id']; $tenantId = session()->get('tenant_id'); $amount = $response['purchase_units'][0]['payments']['captures'][0]['amount']['value']; $currencyCode = $response['purchase_units'][0]['payments']['captures'][0]['amount']['currency_code']; $currencyId = Currency::whereCurrencyCode($currencyCode)->first()->id; $transactionId = $response['id']; $vcard = Vcard::with('tenant.user')->where('id', $vcardId)->first(); $transactionDetails = [ 'vcard_id' => $vcardId, 'transaction_id' => $transactionId, 'currency_id' => $currencyId, 'amount' => $amount, 'tenant_id' => $tenantId, 'type' => Appointment::PAYPAL, 'status' => Transaction::SUCCESS, 'meta' => json_encode($response), ]; $appointmentTran = AppointmentTransaction::create($transactionDetails); $appointmentInput = session()->get('appointment_details'); session()->forget('appointment_details'); $appointmentInput['appointment_tran_id'] = $appointmentTran->id; /** @var AppointmentRepository $appointmentRepo */ $appointmentRepo = App::make(AppointmentRepository::class); $vcardEmail = is_null($vcard->email) ? $vcard->tenant->user->email : $vcard->email; $appointmentRepo->appointmentStoreOrEmail($appointmentInput, $vcardEmail); session()->forget(['vcard_user_id', 'tenant_id', 'vcard_id']); Flash::success(__('messages.placeholder.payment_done')); App::setLocale(Session::get('languageChange_' . $vcard->url_alias)); return redirect(route('vcard.show', [$vcard->url_alias, __('messages.placeholder.appointment_created')])); } catch (HttpException $ex) { print_r($ex->getMessage()); } } /** * @return Application|RedirectResponse|Redirector */ public function userFailed(): RedirectResponse { $vcardId = session('vcard_id'); $vcard = Vcard::findOrFail($vcardId); session()->forget('appointment_details'); session()->forget(['vcard_user_id', 'tenant_id', 'vcard_id']); Flash::error('Your Payment is Cancelled'); return redirect(route('vcard.show', $vcard->url_alias)); } /** * @return Application|Factory|View|void * * @throws IOException */ public function success(Request $request): \Illuminate\View\View { $mode = getSelectedPaymentGateway('paypal_mode'); $clientId = getSelectedPaymentGateway('paypal_client_id'); $clientSecret = getSelectedPaymentGateway('paypal_secret'); config([ 'paypal.mode' => $mode, 'paypal.sandbox.client_id' => $clientId, 'paypal.sandbox.client_secret' => $clientSecret, 'paypal.live.client_id' => $clientId, 'paypal.live.client_secret' => $clientSecret, ]); $provider = new PayPalClient; $provider->getAccessToken(); $token = $request->get('token'); $orderInfo = $provider->showOrderDetails($token); $subscriptionId = null; try { // Call API with your client and get a response for your call $response = $provider->capturePaymentOrder($token); if (isset($response['purchase_units'][0]['reference_id'])) { $subscriptionId = $response['purchase_units'][0]['reference_id']; } if (isset($response['purchase_units'][0]['payments']['captures'][0]['amount']['value'])) { $subscriptionAmount = $response['purchase_units'][0]['payments']['captures'][0]['amount']['value']; } if (isset($response['id'])) { $transactionID = $response['id']; } Subscription::findOrFail($subscriptionId)->update([ 'payment_type' => Subscription::PAYPAL, 'status' => Subscription::ACTIVE ]); // De-Active all other subscription Subscription::whereTenantId(getLogInTenantId()) ->where('id', '!=', $subscriptionId) ->where('status', '!=', Subscription::REJECT) ->update([ 'status' => Subscription::INACTIVE, ]); $transaction = Transaction::create([ 'transaction_id' => $transactionID, 'type' => Transaction::PAYPAL, 'amount' => $subscriptionAmount, 'status' => Subscription::ACTIVE, 'meta' => json_encode($response), ]); // updating the transaction id on the subscription table $subscription = Subscription::findOrFail($subscriptionId); $planName = $subscription->plan->name; $subscription->update(['transaction_id' => $transaction->id]); $affiliateAmount = getSuperAdminSettingValue('affiliation_amount'); $affiliateAmountType = getSuperAdminSettingValue('affiliation_amount_type'); if ($affiliateAmountType == 1) { AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $affiliateAmount, 'is_verified' => 1]); } else if ($affiliateAmountType == 2) { $amount = $subscriptionAmount * $affiliateAmount / 100; AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $amount, 'is_verified' => 1]); } $userEmail = getLogInUser()->email; $firstName = getLogInUser()->first_name; $lastName = getLogInUser()->last_name; $emailData = [ 'subscriptionId' => $subscriptionId, 'subscriptionAmount' => $subscriptionAmount, 'transactionID' => $transactionID, 'planName' => $planName, 'first_name' => $firstName, 'last_name' => $lastName, ]; manageVcards(); Mail::to($userEmail)->send(new SubscriptionPaymentSuccessMail($emailData)); return view('sadmin.plans.payment.paymentSuccess'); } catch (HttpException $ex) { print_r($ex->getMessage()); } } /** * @return Application|Factory|View */ public function failed(): \Illuminate\View\View { return view('sadmin.plans.payment.paymentcancel'); } public function buyProductOnboard($input, $product): JsonResponse { $userId = $product->vcard->user->id; if (empty($product->currency_id)) { $product->currency_id = getUserSettingValue('currency_id', $userId); } $currencyCode = Currency::whereId($product->currency_id)->first()->currency_code; $clientId = getUserSettingValue('paypal_client_id', $userId); $clientSecret = getUserSettingValue('paypal_secret', $userId); $mode = getUserSettingValue('paypal_mode', $userId); config([ 'paypal.mode' => $mode, 'paypal.sandbox.client_id' => $clientId, 'paypal.sandbox.client_secret' => $clientSecret, 'paypal.live.client_id' => $clientId, 'paypal.live.client_secret' => $clientSecret, ]); $provider = new PayPalClient(); $provider->getAccessToken(); $data = [ 'intent' => 'CAPTURE', 'purchase_units' => [ [ 'reference_id' => $product->id, 'amount' => [ 'value' => $product->price, 'currency_code' => $currencyCode, ], ], ], 'application_context' => [ 'cancel_url' => route('paypal.buy.product.failed'), 'return_url' => route('paypal.buy.product.success'), ], ]; $order = $provider->createOrder($data); session()->put([ 'input' => $input, ]); return response()->json(['link' => $order['links'][1]['href'], 'status' => 200]); } public function productBuySuccess(Request $request) { $input = session()->get('input'); $product = Product::whereId($input['product_id'])->first(); $userId = $product->vcard->user->id; if (empty($product->currency_id)) { $product->currency_id = getUserSettingValue('currency_id', $userId); } $currencyId = Currency::whereId($product->currency_id)->first()->id; $clientId = getUserSettingValue('paypal_client_id', $userId); $clientSecret = getUserSettingValue('paypal_secret', $userId); $mode = getUserSettingValue('paypal_mode', $userId); config([ 'paypal.mode' => $mode, 'paypal.sandbox.client_id' => $clientId, 'paypal.sandbox.client_secret' => $clientSecret, 'paypal.live.client_id' => $clientId, 'paypal.live.client_secret' => $clientSecret, ]); $provider = new PayPalClient; $provider->getAccessToken(); $token = $request->get('token'); try { $response = $provider->capturePaymentOrder($token); $amount = $response['purchase_units'][0]['payments']['captures'][0]['amount']['value']; DB::beginTransaction(); ProductTransaction::create([ 'product_id' => $input['product_id'], 'name' => $input['name'], 'email' => $input['email'], 'phone' => $input['phone'], 'address' => $input['address'], 'currency_id' => $currencyId, 'meta' => json_encode($response), 'type' => $input['payment_method'], 'transaction_id' => $response['id'], 'amount' => $amount, ]); $orderMailData = [ 'user_name' => $product->vcard->user->full_name, 'customer_name' => $input['name'], 'product_name' => $product->name, 'product_price' => $product->price, 'phone' => $input['phone'], 'address' => $input['address'], 'payment_type' => __('messages.paypal'), 'order_date' => Carbon::now()->format('d M Y'), ]; if (getUserSettingValue('product_order_send_mail_customer', $userId)) { Mail::to($input['email'])->send(new ProductOrderSendCustomer($orderMailData)); } if (getUserSettingValue('product_order_send_mail_user', $userId)) { Mail::to($product->vcard->user->email)->send(new ProductOrderSendUser($orderMailData)); } $vcard = $product->vcard; App::setLocale(Session::get('languageChange_' . $vcard->url_alias)); session()->forget('input'); DB::commit(); return redirect(route('showProducts', [$vcard->id, $vcard->url_alias, __('messages.placeholder.product_purchase')])); } catch (HttpException $ex) { print_r($ex->getMessage()); } } public function productBuyFailed() { $input = session()->get('input'); session()->forget('input'); $product = Product::whereId($input['product_id'])->first(); $vcard = $product->vcard; Flash::error(__('messages.placeholder.payment_cancel')); return redirect(route('showProducts', [$vcard->id, $vcard->url_alias])); } public function nfcOrderOnboard($orderId, $email, $nfc, $currency) { $mode = getSelectedPaymentGateway('paypal_mode'); $clientId = getSelectedPaymentGateway('paypal_client_id'); $clientSecret = getSelectedPaymentGateway('paypal_secret'); config([ 'paypal.mode' => $mode, 'paypal.sandbox.client_id' => $clientId, 'paypal.sandbox.client_secret' => $clientSecret, 'paypal.live.client_id' => $clientId, 'paypal.live.client_secret' => $clientSecret, ]); $provider = new PayPalClient(); $provider->getAccessToken(); $data = [ 'intent' => 'CAPTURE', 'purchase_units' => [ [ 'reference_id' => $orderId, 'amount' => [ 'value' => $nfc->nfcCard->price * $nfc->quantity, 'currency_code' => $currency, ], ], ], 'application_context' => [ 'cancel_url' => route('nfc.paypal.failed'), 'return_url' => route('nfc.paypal.success'), ], ]; $order = $provider->createOrder($data); session()->put(['order_details' => $nfc, 'order_id' => $orderId]); return response()->json(['link' => $order['links'][1]['href'], 'status' => 200]); } public function nfcPurchaseSuccess(Request $request) { $mode = getSelectedPaymentGateway('paypal_mode'); $clientId = getSelectedPaymentGateway('paypal_client_id'); $clientSecret = getSelectedPaymentGateway('paypal_secret'); config([ 'paypal.mode' => $mode, 'paypal.sandbox.client_id' => $clientId, 'paypal.sandbox.client_secret' => $clientSecret, 'paypal.live.client_id' => $clientId, 'paypal.live.client_secret' => $clientSecret, ]); $provider = new PayPalClient; $provider->getAccessToken(); $token = $request->get('token'); $orderInfo = $provider->showOrderDetails($token); try { // Call API with your client and get a response for your call $response = $provider->capturePaymentOrder($token); // If call returns body in response, you can get the deserialized version from the result attribute of the response $orderId = session()->get('order_id'); $type = NfcOrders::PAYPAL; $transactionId = $response['id']; $amount = $response['purchase_units'][0]['payments']['captures'][0]['amount']['value']; $userId = NfcOrders::findOrFail($orderId)->user_id; $status = NfcOrders::SUCCESS; $nfcOrder = NfcOrders::get()->find($orderId); $transactionDetails = [ 'nfc_order_id' => $orderId, 'type' => $type, 'transaction_id' => $transactionId, 'amount' => $amount, 'user_id' => $userId, 'status' => $status, ]; $vcardName = VCard::find($nfcOrder['vcard_id'])->name; $cardType = Nfc::find($nfcOrder['card_type'])->name; NfcOrderTransaction::create($transactionDetails); session()->forget(['vcard_user_id', 'tenant_id', 'vcard_id', 'order_details', 'order_id']); Mail::to(getSuperAdminSettingValue('email'))->send(new AdminNfcOrderMail($nfcOrder, $vcardName, $cardType)); Flash::success(__('messages.nfc.order_placed_success')); return redirect(route('user.orders')); } catch (HttpException $ex) { print_r($ex->getMessage()); } } public function nfcPurchaseFailed() { $orderId = session()->get('order_id'); $type = NfcOrders::PAYPAL; $amount = session('order_details')->nfcCard->price; $userId = NfcOrders::findOrFail($orderId)->user_id; $transactionDetails = [ 'nfc_order_id' => $orderId, 'type' => $type, 'amount' => $amount, 'user_id' => $userId, 'status' => NfcOrders::FAIL, ]; NfcOrderTransaction::create($transactionDetails); session()->forget(['vcard_user_id', 'tenant_id', 'vcard_id', 'order_details', 'order_id']); Flash::error(__('messages.placeholder.payment_cancel')); return redirect(route('user.orders')); } } PK8\J(n(nControllers/VcardController.phpnu[vcardRepository = $vcardRepository; } /** * @return Application|Factory|View */ public function index(): \Illuminate\View\View { $makeVcard = $this->vcardRepository->checkTotalVcard(); return view('vcards.index', compact('makeVcard')); } /** * @return Application|Factory|View */ public function template(): \Illuminate\View\View { return view('sadmin.vcards.index'); } public function download($id): JsonResponse { $data = Vcard::with('socialLink')->find($id); return $this->sendResponse($data, __('messages.flash.vcard_retrieve')); } /** * @return Application|Factory|View */ public function vcards(): \Illuminate\View\View { $makeVcard = $this->vcardRepository->checkTotalVcard(); return view('vcards.templates', compact('makeVcard')); } public function verified(Vcard $vcard): JsonResponse { $vcard->update([ 'is_verified' => ! $vcard->is_verified, ]); return $this->sendResponse($vcard, __('messages.flash.vcard_verified')); } /** * @return Application|Factory|View */ public function create() { $makeVcard = $this->vcardRepository->checkTotalVcard(); if (! $makeVcard) { return redirect(route('vcards.index')); } $partName = 'basics'; return view('vcards.create', compact('partName')); } /** * @return Application|RedirectResponse|Redirector */ public function store(CreateVcardRequest $request): RedirectResponse { $input = $request->all(); $vcard = $this->vcardRepository->store($input); Flash::success(__('messages.flash.vcard_create')); return redirect(route('vcards.edit', $vcard->id)); } /** * @return Application|Factory|View */ public function show($alias, $id = null) { if (request()->has('fbclid')) { $cleanUrl = request()->fullUrlWithoutQuery('fbclid'); return redirect()->to($cleanUrl); } $vcard = Vcard::with([ 'businessHours' => function ($query) { $query->where('end_time', '!=', '00:00'); }, 'services', 'testimonials', 'products', 'blogs', 'privacy_policy', 'term_condition', 'user', 'banners', 'iframes', 'dynamic_vcard', ])->whereUrlAlias($alias)->first(); $vcardProducts = $vcard->products()->orderBy('id', 'desc')->get(); $blogSingle = ''; if (isset($id)) { $blogSingle = VcardBlog::where('id', $id)->first(); } $setting = Setting::pluck('value', 'key')->toArray(); $vcard_name = $vcard->template->name; $url = explode('/', $vcard->location_url); $appointmentDetail = AppointmentDetail::where('vcard_id', $vcard->id)->first(); $instagramEmbed = AppointmentDetail::where('vcard_id', $vcard->id)->first(); $managesection = VcardSections::where('vcard_id', $vcard->id)->first(); $banners = Banner::where('vcard_id', $vcard->id)->first(); $iframes = Iframe::where('vcard_id', $vcard->id)->first(); $dynamicVcard = DynamicVcard::where('vcard_id', $vcard->id)->first(); $customLink = CustomLink::where('vcard_id', $vcard->id)->get(); $userSetting = UserSetting::where('user_id', $vcard->user->id)->pluck('value', 'key')->toArray(); $currency = ''; $paymentMethod = null; if (isset($userSetting['currency_id']) && count($userSetting) > 0) { $currency = Currency::where('id', $userSetting['currency_id'])->first(); $paymentMethod = getPaymentMethod($userSetting); } $reqpage = str_replace('/' . $vcard->url_alias, '', \Request::getRequestUri()); $reqpage = empty($reqpage) ? 'index' : $reqpage; $reqpage = preg_replace("/\.$/", '', $reqpage); $reqpage = preg_replace('/[0-9]+/', '', $reqpage); $reqpage = str_replace('/', '', $reqpage); $reqpage = str_contains($reqpage, '?') ? substr($reqpage, 0, strpos($reqpage, '?')) : $reqpage; $vcard_name = $vcard_name == 'vcard11' ? 'vcard11.' . $reqpage : $vcard_name; // PWA Support $userId = $vcard->user->id; $inquiry = getUserSettingValue('enable_attachment_for_inquiry', $userId); $contactRequest = getUserSettingValue('ask_details_before_downloading_contact', $userId); $pwa_icon = getUserSettingValue('pwa_icon', $userId); $pwa_icon = (!$pwa_icon) ? 'logo.png' : str_replace(rtrim(env('APP_URL'), '/'), '', $pwa_icon); // notifation // if(getUserSettingValue('notifation_enable',$userId)){ // config([ // 'app.one_signal_app_id' => getUserSettingValue('onesignal_app_id',$userId), // 'onesignal.app_id' => getUserSettingValue('onesignal_app_id',$userId), // 'onesignal.rest_api_key' => getUserSettingValue('onesignal_rest_api_key',$userId), // ]); // } $pwa_name = $vcard->url_alias; $path = public_path('pwa/1.json'); $json = json_decode(file_get_contents($path), true); $json['name'] = $pwa_name; $json['short_name'] = $pwa_name; $json['start_url'] = route('vcard.show', ['alias' => $vcard->url_alias]); if (isset($userSetting['enable_pwa']) && $userSetting['enable_pwa'] == "1") { $json['display'] = "fullscreen"; } else { unset($json['display']); } $json['icons'] = [ [ "src" => $pwa_icon, "sizes" => "512x512", "type" => "image/png", "purpose" => "any maskable", ], ]; file_put_contents($path, json_encode($json)); $businessDaysTime = []; if ($vcard->businessHours->count()) { $dayKeys = [1, 2, 3, 4, 5, 6, 7]; $openDayKeys = []; $openDays = []; $closeDays = []; foreach ($vcard->businessHours as $key => $openDay) { $openDayKeys[] = $openDay->day_of_week; $openDays[$openDay->day_of_week] = $openDay->start_time . ' - ' . $openDay->end_time; } $closedDayKeys = array_diff($dayKeys, $openDayKeys); foreach ($closedDayKeys as $closeDayKey) { $closeDays[$closeDayKey] = null; } $businessDaysTime = $openDays + $closeDays; ksort($businessDaysTime); } $customQrCode = QrcodeEdit::whereTenantId($vcard->user->tenant_id)->where('vcard_id', $vcard->id)->pluck('value', 'key')->toArray(); if ($customQrCode == null) { $customQrCode['qrcode_color'] = '#000000'; $customQrCode['background_color'] = '#ffffff'; } $qrcodeColor['qrcodeColor'] = Hex::fromString($customQrCode['qrcode_color'])->toRgb(); $qrcodeColor['background_color'] = Hex::fromString($customQrCode['background_color'])->toRgb(); if (empty(getLocalLanguage())) { $alias = $vcard->url_alias; $languageName = $vcard->default_language; session(['languageChange_' . $alias => $languageName]); setLocalLang(getLocalLanguage()); } if ($vcard->status) { return view( 'vcardTemplates.' . $vcard_name, compact( 'vcard', 'setting', 'url', 'appointmentDetail', 'banners', 'managesection', 'userSetting', 'currency', 'paymentMethod', 'blogSingle', 'businessDaysTime', 'customQrCode', 'qrcodeColor', 'vcardProducts', 'dynamicVcard', 'instagramEmbed', 'iframes', 'inquiry', 'customLink', 'contactRequest', ) ); } abort('404'); } public function checkPassword(Request $request, Vcard $vcard): JsonResponse { setLocalLang(checkLanguageSession($vcard->url_alias)); if (Crypt::decrypt($vcard->password) == $request->password) { session(['password_' => '1']); return $this->sendSuccess(__('messages.placeholder.password_is_correct')); } return $this->sendError(__('messages.placeholder.password_invalid')); } /** * @return Application|Factory|View|RedirectResponse|Redirector */ public function edit(Vcard $vcard, Request $request) { $partName = ($request->part === null) ? 'basics' : $request->part; if ($partName !== TermCondition::TERM_CONDITION && $partName !== PrivacyPolicy::PRIVACY_POLICY) { if (! checkFeature($partName)) { return redirect(route('vcards.edit', $vcard->id)); } } $data = $this->vcardRepository->edit($vcard); $data['partName'] = $partName; $appointmentDetail = AppointmentDetail::where('vcard_id', $vcard->id)->first(); $banners = Banner::where('vcard_id', $vcard->id)->first(); $privacyPolicy = PrivacyPolicy::where('vcard_id', $vcard->id)->first(); $termCondition = TermCondition::where('vcard_id', $vcard->id)->first(); $managesection = VcardSections::where('vcard_id', $vcard->id)->first(); $dynamicVcard = DynamicVcard::where('vcard_id', $vcard->id)->first(); $instagramEmbed = AppointmentDetail::where('vcard_id', $vcard->id)->first(); $iframes = Iframe::where('vcard_id', $vcard->id)->first(); $customLink = CustomLink::where('vcard_id', $vcard->id)->first(); return view('vcards.edit', compact('appointmentDetail', 'privacyPolicy', 'termCondition', 'iframes', 'managesection', 'instagramEmbed', 'banners', 'dynamicVcard', 'customLink'))->with($data); } public function updateStatus(Vcard $vcard): JsonResponse { if ($vcard->status == 0) { $user = getLogInUser(); $vCards = Vcard::where('tenant_id', $user->tenant_id)->where('status', 1)->get(); $limitOfVcards = Subscription::whereTenantId($user->tenant_id)->where('status', Subscription::ACTIVE)->latest()->first()->no_of_vcards; if ($limitOfVcards <= $vCards->count()) { return $this->sendError(__('messages.vcard.you_have_reached_vcard_limit')); } } $vcard->update([ 'status' => ! $vcard->status, ]); return $this->sendSuccess(__('messages.flash.vcard_status')); } public function update(UpdateVcardRequest $request, Vcard $vcard): RedirectResponse { $request->except('url_alias'); $input = $request->all(); $edit_alias_url = getSuperAdminSettingValue('url_alias'); if ($edit_alias_url == 0 && isset($input['url_alias']) && $input['url_alias'] != $vcard->url_alias) { Flash::error(__('messages.flash.url_alias')); return redirect()->back(); } $vcard = $this->vcardRepository->update($input, $vcard); if ($vcard) { Session::flash('success', ' ' . __('messages.flash.vcard_update')); } // $userId = getLogInUserId(); // if(getUserSettingValue('notifation_enable',$userId)){ // config([ // 'app.one_signal_app_id' => getUserSettingValue('onesignal_app_id',$userId), // 'onesignal.app_id' => getUserSettingValue('onesignal_app_id',$userId), // 'onesignal.rest_api_key' => getUserSettingValue('onesignal_rest_api_key',$userId), // ]); // sendVcardNotifications($vcard->id); // } return redirect()->back(); } public function destroy(Vcard $vcard): JsonResponse { $termCondition = TermCondition::whereVcardId($vcard->id)->first(); if (! empty($termCondition)) { $termCondition->delete(); } $privacyPolicy = PrivacyPolicy::whereVcardId($vcard->id)->first(); if (! empty($privacyPolicy)) { $privacyPolicy->delete(); } $vcard->clearMediaCollection(Vcard::PROFILE_PATH); $vcard->clearMediaCollection(Vcard::COVER_PATH); $vcard->delete(); $data['make_vcard'] = $this->vcardRepository->checkTotalVcard(); return $this->sendResponse($data, __('messages.flash.vcard_delete')); } public function getSlot(Request $request): JsonResponse { $day = $request->get('day'); $slots = getSchedulesTimingSlot(); $html = view('vcards.appointment.slot', ['slots' => $slots, 'day' => $day])->render(); return $this->sendResponse($html, 'Retrieved successfully.'); } public function getSession(Request $request): JsonResponse { try { setLocalLang(getLocalLanguage()); $vcardId = $request->get('vcardId'); $appointmentDate = $request->date; if (!$vcardId || !$appointmentDate) { return $this->sendError(__('messages.placeholder.invalid_request_parameters')); } $buttonStyle = DynamicVcard::where('vcard_id', $vcardId)->value('button_style'); $date = \Carbon\Carbon::parse($appointmentDate); $dayOfWeek = $date->dayOfWeek == 0 ? 7 : $date->dayOfWeek; $weekDaySessions = Appointment::where('day_of_week', $dayOfWeek) ->where('vcard_id', $vcardId) ->get(); if ($weekDaySessions->isEmpty()) { return $this->sendError(__('messages.placeholder.there_is_not_available_slot')); } $bookedAppointments = ScheduleAppointment::where('vcard_id', $vcardId) ->whereDate('date', $appointmentDate) ->get(); $userId = Vcard::with('user')->find($vcardId)->user->id; $timeFormat = getUserSettingValue('time_format', $userId) == UserSetting::HOUR_24 ? 'H:i' : 'h:i A'; $bookedSlot = $bookedAppointments->map(function ($appointment) use ($timeFormat) { return date($timeFormat, strtotime($appointment->from_time)) . ' - ' . date($timeFormat, strtotime($appointment->to_time)); })->toArray(); $bookingSlot = $weekDaySessions->map(function ($session) use ($timeFormat) { if ($timeFormat == 'H:i') { $startTime = substr($session->start_time, 0, 5); $endTime = substr($session->end_time, 0, 5); } else { $startTime = substr($session->start_time, 0, 8); $endTime = substr($session->end_time, 0, 8); } return date($timeFormat, strtotime($startTime)) . ' - ' . date($timeFormat, strtotime($endTime)); })->toArray(); $availableSlots = array_diff($bookingSlot, $bookedSlot); if (empty($availableSlots)) { return $this->sendError(__('messages.placeholder.there_is_not_available_slot')); } $buttonStyle = $buttonStyle ?? ''; return $this->sendResponse($availableSlots, $buttonStyle, 'Retrieved successfully.'); } catch (\Exception $e) { return $this->sendError(__('messages.placeholder.something_went_wrong')); } } public function language($languageName, $alias) { $currentLanguage = getLocalLanguage(); session(['languageChange_' . $alias => $languageName]); setLocalLang(getLocalLanguage()); return $this->sendSuccess(__('messages.flash.language_update', [], $currentLanguage)); } /** * @return Application|Factory|View */ public function analytics(Vcard $vcard, Request $request): \Illuminate\View\View { $input = $request->all(); $data = $this->vcardRepository->analyticsData($input, $vcard); $partName = ($request->part === null) ? 'overview' : $request->part; return view('vcards.analytic', compact('vcard', 'partName', 'data')); } public function chartData(Request $request): JsonResponse { try { $input = $request->all(); $data = $this->vcardRepository->chartData($input); return $this->sendResponse($data, 'Users fetch successfully.'); } catch (Exception $e) { throw new UnprocessableEntityHttpException($e->getMessage()); } } /** * @return mixed */ public function dashboardChartData(Request $request) { try { $input = $request->except('_'); $data = $this->vcardRepository->dashboardChartData($input); return $this->sendResponse($data, 'Data fetch successfully.'); } catch (Exception $e) { throw new UnprocessableEntityHttpException($e->getMessage()); } } /** * @return Application|Factory|View */ public function showBlog($alias, $id): \Illuminate\View\View { setLocalLang(getLocalLanguage()); $blog = VcardBlog::with('vcard:id,template_id')->whereRelation('vcard', 'url_alias', '=', $alias) ->whereRelation('vcard', 'status', '=', 1) ->where('id', $id) ->firstOrFail(); $dynamicVcard = DynamicVcard::where('vcard_id', $blog->vcard_id)->first(); return view('vcards.blog', compact('blog', 'dynamicVcard')); } /** * @return Application|Factory|View */ public function showPrivacyPolicy($alias, $id) { $vacrdTemplate = vcard::find($id); setLocalLang(getLocalLanguage()); $privacyPolicy = PrivacyPolicy::with('vcard')->where('vcard_id', $id)->first(); $termCondition = TermCondition::with('vcard')->where('vcard_id', $id)->first(); $dynamicVcard = DynamicVcard::with('vcard')->where('vcard_id', $id)->first(); if ($vacrdTemplate->template_id == 11) { return redirect()->route('vcard.show.privacy-policy', [$alias, $id]); // return view('vcardTemplates.vcard11.portfolio', compact('privacyPolicy', 'alias', 'termCondition')); } return view('vcards.privacy-policy', compact('privacyPolicy', 'alias', 'termCondition', 'dynamicVcard')); } public function duplicateVcard($id): JsonResponse { try { $vcard = Vcard::with([ 'services', 'testimonials', 'products', 'blogs', 'privacy_policy', 'term_condition', 'socialLink', 'customeLink', 'banners', 'iframes', 'InstagramEmbed', 'Qrcode', ])->where('id', $id)->first(); $this->vcardRepository->getDuplicateVcard($vcard); return $this->sendSuccess('Duplicate Vcard Create successfully.'); } catch (Exception $e) { throw new UnprocessableEntityHttpException($e->getMessage()); } } public function getUniqueUrlAlias() { return getUniqueVcardUrlAlias(); } public function checkUniqueUrlAlias($urlAlias) { $isUniqueUrl = isUniqueVcardUrlAlias($urlAlias); if ($isUniqueUrl === true) { return $this->sendResponse(['isUnique' => true], 'URL Alias is available to use.'); } $response = ['isUnique' => false, 'usedInVcard' => $isUniqueUrl]; return $this->sendResponse($response, 'This URL Alias is already in use'); } public function addContact(Vcard $vcard) { ini_set('memory_limit', '-1'); $vcfVcard = new VCardVCard(); $lastname = $vcard->last_name; $firstname = $vcard->first_name; $vcfVcard->addName($lastname, $firstname); $vcfVcard->addCompany($vcard->company); $vcfVcard->addJobtitle($vcard->job_title); if (! empty($vcard->email)) { $vcfVcard->addEmail($vcard->email); } if (! empty($vcard->alternative_email)) { $vcfVcard->addEmail($vcard->alternative_email, 'EMAIL;type=Alternate Email'); } if (! empty($vcard->phone)) { $vcfVcard->addPhoneNumber('+' . $vcard->region_code . $vcard->phone, 'TEL;type=CELL'); } if (! empty($vcard->alternative_phone)) { $vcfVcard->addPhoneNumber('+' . $vcard->alternative_region_code . $vcard->alternative_phone, 'TEL;type=Alternate Phone'); } $vcfVcard->addAddress($vcard->location); if (! empty($vcard->location_url)) { $vcfVcard->addURL($vcard->location_url, 'TYPE=Location URL'); } $socialLinks = SocialLink::whereVcardId($vcard->id)->first()->toArray(); $customSocialLinks = SocialIcon::with('media')->whereSocialLinkId($socialLinks['id'])->get(); unset($socialLinks['id']); unset($socialLinks['media']); unset($socialLinks['created_at']); unset($socialLinks['updated_at']); unset($socialLinks['social_icon']); unset($socialLinks['vcard_id']); foreach ($customSocialLinks as $link) { $socialLinks = array_merge($socialLinks, [$link->media[0]['name'] => $link->link]); } foreach ($socialLinks as $key => $link) { $name = Str::camel($key); $vcfVcard->addURL($link, 'TYPE=' . $name); } $vcfVcard->addURL(URL::to($vcard->url_alias)); if ($media = $vcard->getMedia(\App\Models\Vcard::PROFILE_PATH)->first()) { $vcfVcard->addPhotoContent(file_get_contents($media->getFullUrl())); } return \Response::make( $vcfVcard->getOutput(), 200, $vcfVcard->getHeaders(true) ); } public function showProducts($id, $alias) { $vcard = Vcard::with([ 'businessHours' => function ($query) { $query->where('end_time', '!=', '00:00'); }, 'services', 'testimonials', 'products', 'blogs', 'privacy_policy', 'term_condition', 'user', ])->whereUrlAlias($alias)->first(); $userSetting = UserSetting::where('user_id', $vcard->user->id)->pluck('value', 'key')->toArray(); $vcardProducts = $vcard->products->sortDesc()->take(6); $products = Product::with('vcard')->whereVcardId($id)->get(); $template_id = $products->first()->vcard->template_id; if ($vcard->status) { return view( 'vcardTemplates/products/vcard' . $template_id, compact( 'vcard', 'vcardProducts', 'products', 'userSetting' ) ); } } public function deleteAccount() { setLocalLang(getCurrentLanguageName()); return view('vcards.delete_account'); } public function getCookie(Request $request) { $fullUrl = $request->url; $urlWithoutDomain = trim(parse_url($fullUrl, PHP_URL_PATH), '/'); $vcard = Vcard::whereUrlAlias($urlWithoutDomain)->first(); $valuedata = 5 * 1000; if ($vcard) { $user = $vcard->user; if ($user) { $value = getUserSettingValue('subscription_model_time', $user->id); $timeValue = empty($value) ? 5 : $value; $valuedata = intval($timeValue) * 1000; } } return $this->sendResponse($valuedata, ''); } public function emailSubscriprionStore(CreateEmailSubscribersRequest $request) { $input = $request->all(); VcardEmailSubscription::create($input); return $this->sendSuccess(__('messages.flash.email_send')); } public function showSubscribers(Vcard $vcard) { $vcardId = $vcard->id; return view('vcards.vcard-subscribers', compact('vcardId')); } public function showContact(Vcard $vcard) { $vcardId = $vcard->id; return view('vcards.vcard-contact', compact('vcardId')); } public function vcardViewType(Request $request): JsonResponse { $viewType = $request->input('vcard_table_view_type'); $user = getLogInUser(); $user->update(['vcard_table_view_type' => $viewType]); return $this->sendSuccess(__('messages.vcard_table_view_changed')); } public function servicesSliderView(Vcard $vcard): JsonResponse { if ($vcard) { $vcard->services_slider_view = !$vcard->services_slider_view; $vcard->save(); return $this->sendSuccess(__('messages.flash.services_slider_view')); } return $this->sendError('Something went wrong', 200); } public function cloneTo(Vcard $vcard) { $users = User::role('admin') ->where('tenant_id', '!=', $vcard->user->tenant_id) ->get() ->mapWithKeys(function ($user) { return [$user->id => $user->full_name]; }) ->toArray(); $data = [ 'vcard' => $vcard, 'users' => $users ]; return $this->sendResponse($data, 'Vcard Retrieved Successfully.'); } public function sadminDuplicateVcard($id, $userId = null): JsonResponse { try { $vcard = Vcard::with([ 'services', 'testimonials', 'products', 'blogs', 'privacy_policy', 'term_condition', 'socialLink', 'customeLink', 'banners', 'iframes', 'InstagramEmbed', 'Qrcode', ])->where('id', $id)->first(); $this->vcardRepository->getDuplicateVcard($vcard, $userId); return $this->sendSuccess('Duplicate Vcard Create successfully.'); } catch (Exception $e) { throw new UnprocessableEntityHttpException($e->getMessage()); } } } PK8\3++Controllers/Controller.phpnu[subscriptionRepository = $subscriptionRepository; } public function flutterwaveSubscription(Request $request) { $clientId = getSelectedPaymentGateway('flutterwave_key'); $clientSecret = getSelectedPaymentGateway('flutterwave_secret'); config([ 'flutterwave.publicKey' => $clientId, 'flutterwave.secretKey' => $clientSecret, ]); $supportedCurrency = ['GBP', 'CAD', 'XAF', 'CLP', 'COP', 'EGP', 'EUR', 'GHS', 'GNF', 'KES', 'MWK', 'MAD', 'NGN', 'RWF', 'SLL', 'STD', 'ZAR', 'TZS', 'UGX', 'USD', 'XOF', 'ZMW']; $plan = Plan::with('currency')->findOrFail($request->planId); if ($plan->currency->currency_code != null && !in_array(strtoupper($plan->currency->currency_code), $supportedCurrency)) { Flash::error(__('messages.placeholder.this_currency_is_not_supported_flutterwave')); return Redirect()->back(); } $data = $this->subscriptionRepository->manageSubscription($request->all()); if (!isset($data['plan'])) { if (isset($data['status']) && $data['status'] == true) { Flash::error(__('messages.subscription_pricing_plans.has_been_subscribed')); return Redirect()->back(); } else { if (isset($data['status']) && $data['status'] == false) { Flash::error(__('messages.placeholder.cannot_switch_to_zero')); return Redirect()->back(); } } } $subscriptionsPricingPlan = $data['plan']; $subscription = $data['subscription']; // FlutterWave $reference = FlutterWave::generateReference(); $data = [ 'payment_options' => 'card,banktransfer', 'amount' => $data['amountToPay'], 'email' => $request->user()->email, 'tx_ref' => $reference, 'currency' => $plan->currency->currency_code, 'redirect_url' => route('flutterwave.subscription.success'), 'customer' => [ 'email' => getLogInUser()->email, ], 'customizations' => [ 'title' => 'Purchase Subscription Payment', ], 'meta' => [ 'subscription_id' => $subscription->id, 'amount' => $data['amountToPay'] * 100, 'payment_mode' => Subscription::FLUTTERWAVE, ], ]; $payment = FlutterWave::initializePayment($data); if ($payment['status'] !== 'success') { return redirect(route('subscription.index')); } $url = $payment['data']['link']; return redirect()->away($url); } public function flutterwaveSubscriptionSuccess(Request $request) { $clientId = getSelectedPaymentGateway('flutterwave_key'); $clientSecret = getSelectedPaymentGateway('flutterwave_secret'); config([ 'flutterwave.publicKey' => $clientId, 'flutterwave.secretKey' => $clientSecret, ]); $input = $request->all(); if ($input['status'] == 'successful') { $transactionID = FlutterWave::getTransactionIDFromCallback(); $flutterWaveData = FlutterWave::verifyTransaction($transactionID); $data = $flutterWaveData['data']; $amount = $data['amount']; $subscriptionId = $data['meta']['subscription_id']; Subscription::findOrFail($subscriptionId)->update([ 'payment_type' => Subscription::FLUTTERWAVE, 'status' => Subscription::ACTIVE ]); // De-Active all other subscription Subscription::whereTenantId(getLogInTenantId()) ->where('id', '!=', $subscriptionId) ->where('status', '!=', Subscription::REJECT) ->update([ 'status' => Subscription::INACTIVE, ]); $transaction = Transaction::create([ 'transaction_id' => $input['transaction_id'], 'type' => Transaction::FLUTTERWAVE, 'amount' => $amount, 'status' => Subscription::ACTIVE, 'meta' => json_encode($data), ]); // updating the transaction id on the subscription table $subscription = Subscription::findOrFail($subscriptionId); $planName = $subscription->plan->name; $subscription->update(['transaction_id' => $transaction->id]); $affiliateAmount = getSuperAdminSettingValue('affiliation_amount'); $affiliateAmountType = getSuperAdminSettingValue('affiliation_amount_type'); if($affiliateAmountType == 1){ AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $affiliateAmount,'is_verified' => 1]); }else if($affiliateAmountType == 2){ $amount = $amount * $affiliateAmount / 100; AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $amount,'is_verified' => 1]); } $userEmail = getLogInUser()->email; $firstName = getLogInUser()->first_name; $lastName = getLogInUser()->last_name; $emailData = [ 'first_name' => $firstName, 'last_name' => $lastName, 'planName' => $planName, ]; manageVcards(); Mail::to($userEmail)->send(new SubscriptionPaymentSuccessMail($emailData)); return view('sadmin.plans.payment.paymentSuccess'); } } public function nfcOrder($orderId, $email, $nfc, $currency) { $clientId = getSelectedPaymentGateway('flutterwave_key'); $clientSecret = getSelectedPaymentGateway('flutterwave_secret'); config([ 'flutterwave.publicKey' => $clientId, 'flutterwave.secretKey' => $clientSecret, ]); try { $reference = FlutterWave::generateReference(); $data = [ 'payment_options' => 'card,banktransfer', 'amount' => $nfc->nfcCard->price * $nfc->quantity, 'email' => getLogInUser()->email, 'tx_ref' => $reference, 'currency' => $currency, 'redirect_url' => route('flutterwave.nfcOrder.success'), 'customer' => [ 'email' => $nfc->email, ], 'customizations' => [ 'title' => 'Purchase NFC Order Payment', ], 'meta' => [ 'order_id' => $orderId, 'amount' => $nfc->nfcCard->price * $nfc->quantity, 'payment_mode' => Subscription::FLUTTERWAVE, ], ]; $payment = FlutterWave::initializePayment($data); if ($payment['status'] !== 'success') { return redirect(route('user.orders')); } $url = $payment['data']['link']; return $url; } catch (\Exception $e) { Flash::error(__('messages.setting.paystack_credential')); return Redirect()->back(); } } public function flutterwaveNfcOrderSuccess(Request $request) { $clientId = getSelectedPaymentGateway('flutterwave_key'); $clientSecret = getSelectedPaymentGateway('flutterwave_secret'); config([ 'flutterwave.publicKey' => $clientId, 'flutterwave.secretKey' => $clientSecret, ]); $input = $request->all(); if ($input['status'] == 'successful') { $transactionID = FlutterWave::getTransactionIDFromCallback(); $flutterWaveData = FlutterWave::verifyTransaction($transactionID); $data = $flutterWaveData['data']; try { $orderId = $data['meta']['order_id']; $userId = NfcOrders::findOrFail($orderId)->user_id; $status = NfcOrders::SUCCESS; $nfcOrder = NfcOrders::get()->find($orderId); $type = NfcOrders::FLUTTERWAVE; $transactionId = $input['transaction_id']; $amount = $data['amount']; $transactionDetails = [ 'nfc_order_id' => $orderId, 'type' => $type, 'transaction_id' => $transactionId, 'amount' => $amount, 'user_id' => $userId, 'status' => $status, ]; NfcOrderTransaction::create($transactionDetails); $vcardName = Vcard::find($nfcOrder['vcard_id'])->name; $cardType = Nfc::find($nfcOrder['card_type'])->name; Mail::to(getSuperAdminSettingValue('email'))->send(new AdminNfcOrderMail($nfcOrder, $vcardName, $cardType)); Flash::success(__('messages.nfc.order_placed_success')); return redirect(route('user.orders')); } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } } } PK8\aVAA$Controllers/CouponCodeController.phpnu[all(); $couponLimit = $input['coupon_limit']; $input['coupon_limit_left'] = $couponLimit; // $endDate = $input['expire_at']; // $format = getSuperAdminSettingValue('datetime_method'); // $formattedDate = ($format == 1) // ? Carbon::createFromFormat('d M, Y', $endDate)->format('Y-m-d H:i:s') // : (($format == 2) // ? Carbon::createFromFormat('M d, Y', $endDate)->format('Y-m-d H:i:s') // : (($format == 3) // ? Carbon::createFromFormat('d/m/Y', $endDate)->format('Y-m-d H:i:s') // : (($format == 4) // ? Carbon::createFromFormat('Y/m/d', $endDate)->format('Y-m-d H:i:s') // : (($format == 5) // ? Carbon::createFromFormat('m/d/Y', $endDate)->format('Y-m-d H:i:s') // : (($format == 6) // ? Carbon::createFromFormat('Y-m-d', $endDate)->format('Y-m-d H:i:s') // : Carbon::parse($endDate)->format('Y-m-d H:i:s') // ) // ) // ) // ) // ); // $input['expire_at'] = $formattedDate; $input['status'] = isset($input['status']); CouponCode::create($input); return $this->sendSuccess(__('messages.coupon_code.coupon_code_created')); } public function edit($couponCodeId) { $couponCode = CouponCode::findOrFail($couponCodeId); return $this->sendResponse($couponCode, 'Coupon Code Retrieved Successfully.'); } public function update(UpdateCouponCodeRequest $request, $id) { $input = $request->all(); $couponCode = CouponCode::findOrFail($id); $couponCodeLimit = $couponCode->coupon_limit_left; $input['coupon_limit'] = isset($input['coupon_limit'])? $input['coupon_limit']: null; if($input['coupon_limit'] == $couponCodeLimit ){ $input['coupon_limit_left'] = $input['coupon_limit']; }else{ $input['coupon_limit_left'] = $couponCodeLimit - ($input['coupon_limit'] ) ; } if($input['coupon_limit'] > $couponCodeLimit ){ $input['coupon_limit_left'] = $input['coupon_limit']; } if($input['coupon_limit'] < $couponCodeLimit ){ $input['coupon_limit_left'] = $input['coupon_limit']; } if($input['coupon_limit'] == null){ $input['coupon_limit_left'] = null; } // $endDate = $input['expire_at']; // $format = getSuperAdminSettingValue('datetime_method'); // $formattedDate = ($format == 1) // ? Carbon::createFromFormat('d M, Y', $endDate)->format('Y-m-d H:i:s') // : (($format == 2) // ? Carbon::createFromFormat('M d, Y', $endDate)->format('Y-m-d H:i:s') // : (($format == 3) // ? Carbon::createFromFormat('d/m/Y', $endDate)->format('Y-m-d H:i:s') // : (($format == 4) // ? Carbon::createFromFormat('Y/m/d', $endDate)->format('Y-m-d H:i:s') // : (($format == 5) // ? Carbon::createFromFormat('m/d/Y', $endDate)->format('Y-m-d H:i:s') // : (($format == 6) // ? Carbon::createFromFormat('Y-m-d', $endDate)->format('Y-m-d H:i:s') // : Carbon::parse($endDate)->format('Y-m-d H:i:s') // ) // ) // ) // ) // ); // $input['expire_at'] = $formattedDate; $input['status'] = isset($input['status']); $couponCode->update($input); return $this->sendSuccess(__('messages.coupon_code.coupon_code_updated')); } public function destroy($couponCodeId) { $couponCode = CouponCode::findOrFail($couponCodeId); $couponCode->delete(); return $this->sendSuccess('Coupon Code deleted Successfully.'); } public function changeCouponCodeStatus(Request $request, $couponCodeId) { $couponCode = CouponCode::findOrFail($couponCodeId); $couponCode->status = $request->get('status') == 'true' ? 1 : 0; $couponCode->update(); return $this->sendSuccess(__('messages.coupon_code.coupon_code_status_updated')); } public function applyCouponCode(Request $request, $couponCode = null) { $input = $request->all(); $input['couponCode'] = $couponCode; $couponCodeRepo = App(CouponCodeRepository::class); $newPlan = $couponCodeRepo->getAfterDiscountData($input); if (isset($newPlan['afterDiscount'])) { $couponId = $newPlan['afterDiscount']['couponId']; $coupon = CouponCode::find($couponId); if ($coupon) { if ($coupon->coupon_limit != null) { if ($coupon->coupon_limit_left <= 0) { return $this->sendError(__('messages.coupon_code.coupon_limit_reached')); } } } } return $this->sendResponse($newPlan, __('messages.coupon_code.coupon_code_applied')); } } PK8\w,Controllers/ProductTransactionController.phpnu[first(); return view('product_transactions.show', compact('productTransaction')); } public function updateSendCustomerMail(Request $request) { $setting = UserSetting::where('user_id', Auth::id())->where('key', 'product_order_send_mail_customer')->first(); try { DB::beginTransaction(); if (! $setting) { $setting = UserSetting::create([ 'user_id' => Auth::id(), 'key' => 'product_order_send_mail_customer', 'value' => $request->customer_mail ?? '1', ]); } else { $setting->update(['value' => $request->customer_mail ?? '1']); } DB::commit(); } catch (\Exception $e) { DB::rollBack(); return $this->sendError($e->getMessage()); } return $this->sendSuccess(__('messages.flash.send_email_to_customer_success')); } public function updateSendUserMail(Request $request) { $setting = UserSetting::where('user_id', Auth::id())->where('key', 'product_order_send_mail_user')->first(); try { DB::beginTransaction(); if (! $setting) { $setting = UserSetting::create([ 'user_id' => Auth::id(), 'key' => 'product_order_send_mail_user', 'value' => $request->user_mail ?? '1', ]); } else { $setting->update(['value' => $request->user_mail ?? '1']); } DB::commit(); } catch (\Exception $e) { DB::rollBack(); return $this->sendError($e->getMessage()); } return $this->sendSuccess(__('messages.flash.send_email_to_user_success')); } } PK8\fFҤ Controllers/RoleController.phpnu[roleRepository = $roleRepo; } /** * @return Application|Factory|View * * @throws Exception */ public function index(Request $request): \Illuminate\View\View { $permissions = Permission::toBase()->get(); return view('roles.index', compact('permissions')); } /** * @return Application|Factory|View */ public function create(): \Illuminate\View\View { $permissions = $this->roleRepository->getPermissions(); return view('roles.create', compact('permissions')); } /** * Store a newly created Role in storage. * * @return Application|RedirectResponse|Redirector */ public function store(CreateRoleRequest $request): RedirectResponse { $input = $request->all(); $this->roleRepository->store($input); Flash::success(__('messages.placeholder.role_created')); return redirect(route('roles.index')); } /** * Show the form for editing the specified Role. * * @return Application|Factory|View */ public function edit(Role $role): \Illuminate\View\View { $permissions = $this->roleRepository->getPermissions(); $selectedPermissions = $role->getAllPermissions()->keyBy('id'); return view('roles.edit', compact('role', 'permissions', 'selectedPermissions')); } /** * Update the specified Role in storage. * * @return Application|Redirector|RedirectResponse */ public function update(UpdateRoleRequest $request, Role $role): RedirectResponse { $this->roleRepository->update($request->all(), $role->id); Flash::success('Role updated successfully.'); return redirect(route('roles.index')); } /** * Remove the specified Role from storage. */ public function destroy(Role $role): JsonResponse { if ($role->is_default == 1) { return $this->sendError('Default role do not deleted.'); } $role->delete(); return $this->sendSuccess('Role deleted successfully.'); } } PK8\K   -Controllers/API/RegistrationAPIController.phpnu[input('referral-code'); $referral_user = ''; if ($referral_code) { $referral_user = User::where('affiliate_code', $referral_code)->first(); } try { DB::beginTransaction(); // Check if the user already exists $existingUser = User::where('email', $request->email)->first(); if ($existingUser) { // Handle case where email is already registered return $this->sendError("Email is already registered."); } $tenant = MultiTenant::create(['tenant_username' => $request->first_name]); $userDefaultLanguage = Setting::where('key', 'user_default_language')->first()->value ?? 'en'; $user = User::create([ 'first_name' => $request->first_name, 'last_name' => $request->last_name, 'email' => $request->email, 'language' => $userDefaultLanguage, 'password' => Hash::make($request->password), 'tenant_id' => $tenant->id, 'affiliate_code' => generateUniqueAffiliateCode(), ])->assignRole(Role::ROLE_ADMIN); $plan = Plan::whereIsDefault(true)->first(); Subscription::create([ 'plan_id' => $plan->id, 'plan_amount' => $plan->price, 'plan_frequency' => Plan::MONTHLY, 'starts_at' => Carbon::now(), 'ends_at' => Carbon::now()->addDays($plan->trial_days), 'trial_ends_at' => Carbon::now()->addDays($plan->trial_days), 'status' => Subscription::ACTIVE, 'tenant_id' => $tenant->id, 'no_of_vcards' => $plan->no_of_vcards, ]); if ($referral_user) { $affiliateUser = new AffiliateUser(); $affiliateUser->affiliated_by = $referral_user->id; $affiliateUser->user_id = $user->id; $affiliateUser->amount = 0; $affiliateUser->save(); } DB::commit(); $token = Password::getRepository()->create($user); $data['url'] = config('app.url').'/verify-email/'.$user->id.'/'.$token; $data['user'] = $user; Mail::to($user->email)->send(new VerifyMail($data)); return $this->sendSuccess("Registration successfully."); } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } } PK8\5Controllers/API/BusinessCards/GroupsAPIController.phpnu[ $request->name, 'tenant_id' => getLogInTenantId(), ]); return $this->sendSuccess('Group created successfully.'); } public function groupData() { $groupsData = Group::all(); $data = []; foreach ($groupsData as $groupData) { $data[] = [ 'id' => $groupData->id, 'name' => $groupData->name, 'tenant_id' => $groupData->tenant_id, 'created_at' => $groupData->created_at, ]; } return $this->sendResponse($data, 'Groups data retrieved successfully.'); } public function deleteGroup($group) { $enquiry = Group::find($group); if (empty($group)) { return $this->sendSuccess('Group not found'); } $enquiry->delete(); return $this->sendSuccess('Group deleted successfully.'); } } PK8\y@@'Controllers/API/BusinessCards/error_lognu[[17-Jun-2026 15:45:27 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/GroupsAPIController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/GroupsAPIController.php on line 10 [17-Jun-2026 21:34:47 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/BusinessAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/BusinessAPIController.php on line 12 [19-Jun-2026 12:29:36 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/BusinessAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/BusinessAPIController.php on line 12 [19-Jun-2026 23:54:37 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/GroupsAPIController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/GroupsAPIController.php on line 10 [17-Jul-2026 13:46:39 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/BusinessAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/BusinessAPIController.php on line 12 [17-Jul-2026 13:48:41 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/GroupsAPIController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/BusinessCards/GroupsAPIController.php on line 10 PK8\; ; 7Controllers/API/BusinessCards/BusinessAPIController.phpnu[url_alias; $urlAlias = null; $parsedUrl = parse_url($url); if (isset($parsedUrl['path'])) { $pathParts = explode('/', $parsedUrl['path']); $urlAlias = end($pathParts); } if (isset($urlAlias)) { $vcard = Vcard::where('url_alias', $urlAlias)->first(); if ($vcard) { BusinessCards::create([ 'tenant_id' => getLogInTenantId(), 'vcard_id' => $vcard->id, 'url' => route('vcard.show', ['alias' => $vcard->url_alias]), 'group_id' => $request->group_id, ]); return $this->sendSuccess('Business card created successfully.'); } } // If no matching Vcard found, create business card with provided data BusinessCards::create([ 'tenant_id' => getLogInTenantId(), 'vcard_id' => $request->id, 'url' => $url, // Use the provided URL 'group_id' => $request->group_id, ]); return $this->sendSuccess('Business card created successfully.'); } public function businessCardData(Request $request) { $filter = $request->all(); $businessCards = BusinessCards::with(['vcard', 'groups']) ->when(!empty($filter), function ($q) use ($filter) { $q->whereIn('group_id', $filter['filter']); }) ->get(); $data = []; foreach ($businessCards as $businessCard) { $data[] = [ 'id' => $businessCard->id, 'vcard_id' => $businessCard->vcard_id, 'url' => $businessCard->url, 'name' => $businessCard->vcard ? $businessCard->vcard->name : null, 'occupation' => $businessCard->vcard ? $businessCard->vcard->occupation : null, 'created_at' => $businessCard->vcard ? $businessCard->vcard->created_at : null, 'group_name' => $businessCard->groups->name, 'phone' => $businessCard->vcard->phone ?? null, 'alternative_phone' => $businessCard->vcard->alternative_phone ?? null, 'vcard_image' => !empty($businessCard->vcard->template) ? $businessCard->vcard->template->template_url : null, ]; } return $this->sendResponse($data, 'Business Data Retrieve Successfully.'); } } PK8\^.Controllers/API/Admin/EnquiryAPIController.phpnu[pluck('id')->toArray(); $enquirys = Enquiry::with('vcard')->whereIn('vcard_id', $vcardIds)->get(); $data = []; foreach ($enquirys as $enquiry) { $data[] = [ 'id' => $enquiry->id, 'vcard_name' => $enquiry->vcard->name, 'name' => $enquiry->name, 'created_at' => $enquiry->created_at, ]; } return $this->sendResponse($data, 'Enquiry data retrieved successfully.'); } public function enquiry($enquiry) { $enquirys = Enquiry::with('vcard')->whereId($enquiry)->first(); if(empty($enquirys)){ return $this->sendError('Enquiry not found', 404); } $data[] = [ 'id' => $enquirys->id, 'vcard_name' => $enquirys->vcard->name, 'name' => $enquirys->name, 'email' => $enquirys->email, 'phone' => $enquirys->phone, 'message' => $enquirys->message, 'created_at' => $enquirys->created_at, ]; return $this->sendResponse($data, 'Enquiry data retrieved successfully.'); } public function deleteEnquiry($enquiry) { $enquiry = Enquiry::find($enquiry); if (empty($enquiry)) { return $this->sendSuccess('Appointment not found'); } $enquiry->delete(); return $this->sendSuccess('Enquiry deleted successfully.'); } } PK8\.R A A 2Controllers/API/Admin/AppointmentAPIController.phpnu[pluck('id')->toArray(); $scheduleAppointments = ScheduleAppointment::with('vcard')->whereIn('vcard_id', $vcardIds)->get(); $data = []; foreach ($scheduleAppointments as $appointment) { $data[] = [ 'id' => $appointment->id, 'vcard_name' => $appointment->vcard->name, 'name' => $appointment->name, 'date' => $appointment->date, 'from_time' => $appointment->from_time, 'to_time' => $appointment->to_time, 'status' => $appointment->status, 'paid_amount' => $appointment->paid_amount, ]; } return $this->sendResponse($data, 'Appointment data retrieved successfully.'); } public function appointment($scheduleAppointmentsId) { $scheduleAppointments = ScheduleAppointment::with('vcard')->whereId($scheduleAppointmentsId)->first(); if(empty($scheduleAppointments)){ return $this->sendError('Appointment not found', 404); } $data[] = [ 'id' => $scheduleAppointments->id, 'vcard_name' => $scheduleAppointments->vcard->name, 'name' => $scheduleAppointments->name, 'email' => $scheduleAppointments->email, 'phone' => $scheduleAppointments->phone, 'date' => $scheduleAppointments->date, 'from_time' => $scheduleAppointments->from_time, 'to_time' => $scheduleAppointments->to_time, 'status' => $scheduleAppointments->status, 'paid_amount' => $scheduleAppointments->paid_amount, ]; return $this->sendResponse($data, 'Appointment data retrieved successfully.'); } public function deleteAppointment($scheduleAppointmentsId) { $appointment = ScheduleAppointment::find($scheduleAppointmentsId); if (empty($appointment)) { return $this->sendSuccess('Appointment not found'); } $appointment->delete(); return $this->sendSuccess('Appointment deleted successfully.'); } public function appointmentCompleted(ScheduleAppointment $scheduleAppointmentsId) { $appointments = ScheduleAppointment::find($scheduleAppointmentsId->id); $appointments->update([ 'status' => ScheduleAppointment::COMPLETED, ]); return $this->sendSuccess('Appointment completed successfully;'); } } PK8\OJ ,Controllers/API/Admin/GroupAPIController.phpnu[ $request->name, 'tenant_id' => getLogInTenantId(), ]); return $this->sendSuccess('User Group created successfully.'); } public function groupData() { $tenantId = getLogInTenantId(); $groupsData = Group::where('tenant_id', $tenantId)->get(); $data = []; foreach ($groupsData as $groupData) { $data[] = [ 'id' => $groupData->id, 'name' => $groupData->name, 'tenant_id' => $groupData->tenant_id, 'created_at' => $groupData->created_at, ]; } return $this->sendResponse($data, 'User groups data retrieved successfully.'); } public function deleteGroup($groupId) { $tenantId = getLogInTenantId(); $userVcard = Group::where('id', $groupId) ->where('tenant_id', $tenantId) ->first(); if (!$userVcard) { return $this->sendError('User Groups not found'); } $userVcard->delete(); return $this->sendSuccess('User Groups deleted successfully.'); } } PK8\,Controllers/API/Admin/VcardAPIController.phpnu[pluck('id')->toArray(); $vcards = Vcard::whereIn('id', $vcardIds)->get(); $data = []; foreach ($vcards as $vcard) { $data[] = [ 'id' => $vcard->id, 'name' => $vcard->name, 'url_alias' => route('vcard.show', ['alias' => $vcard->url_alias]), 'occupation' => $vcard->occupation, 'image' => !empty($vcard->template) ? $vcard->template->template_url : asset('assets/images/default_cover_image.jpg'), ]; } return $this->sendResponse($data, 'Vcards Data Retrieve Successfully.'); } public function vcard(Request $vcard) { $tenantId = getLogInTenantId(); $userVcard = Vcard::where('id', $vcard->id) ->where('tenant_id', $tenantId) ->first(); if (empty($userVcard)) { return $this->sendError('Vcard not found'); } $data = [ 'id' => $userVcard->id, 'name' => $userVcard->name, 'occupation' => $userVcard->occupation, 'image' => !empty($userVcard->template) ? $userVcard->template->template_url : asset('assets/images/default_cover_image.jpg'), 'created_at' => $userVcard->created_at, ]; return $this->sendResponse($data, 'Vcard Data Retrieved Successfully.'); } public function deleteVcard($vcardId) { $tenantId = getLogInTenantId(); $userVcard = Vcard::where('id', $vcardId) ->where('tenant_id', $tenantId) ->first(); if (!$userVcard) { return $this->sendError('Vcard not found'); } $userVcard->delete(); return $this->sendSuccess('Vcard deleted successfully.'); } public function appointmentVcard($vcard) { if (!is_array($vcard)) { $vcard = [$vcard]; } $tenantId = getLogInTenantId(); $scheduleAppointment = ScheduleAppointment::with('vcard') ->whereIn('vcard_id', $vcard) ->whereHas('vcard', function ($query) use ($tenantId) { $query->where('tenant_id', $tenantId); }) ->get(); $data = []; foreach ($scheduleAppointment as $scheduleAppointments) { $data[] = [ 'id' => $scheduleAppointments->id, 'vcard_id' => $scheduleAppointments->vcard->id, 'vcard_name' => $scheduleAppointments->vcard->name, 'name' => $scheduleAppointments->name, 'date' => $scheduleAppointments->date, 'from_time' => $scheduleAppointments->from_time, 'to_time' => $scheduleAppointments->to_time, 'status' => $scheduleAppointments->status, 'paid_amount' => $scheduleAppointments->paid_amount, ]; } return $this->sendResponse($data, 'Vcard Appointment Data Retrieve Successfully.'); } public function enquiresVcard($vcard) { $tenantId = getLogInTenantId(); $enquiriesDatas = Enquiry::whereHas('vcard', function ($query) use ($vcard, $tenantId) { $query->where('id', $vcard) ->where('tenant_id', $tenantId); }) ->get(); $data = []; foreach ($enquiriesDatas as $enquiriesData) { $data[] = [ 'id' => $enquiriesData->id, 'vcard_name' => $enquiriesData->vcard->name, 'name' => $enquiriesData->name, 'email' => $enquiriesData->email, 'phone' => $enquiriesData->phone, 'message' => $enquiriesData->message, 'created_at' => $enquiriesData->created_at, ]; } return $this->sendResponse($data, 'Vcard Enquiries Data Retrieve Successfully.'); } } PK8\gk 0Controllers/API/Admin/DashboardAPIController.phpnu[dashboardRepository = $dashboardRepo; $this->vcardRepository = $vcardRepo; } public function index() { $data['activeVcard'] = Vcard::whereTenantId(auth()->user()->tenant_id)->whereStatus(1)->count(); $data['deActiveVcard'] = Vcard::whereTenantId(auth()->user()->tenant_id)->whereStatus(0)->count(); $data['enquiry'] = $this->dashboardRepository->getEnquiryCountAttribute(); $data['appointment'] = $this->dashboardRepository->getAppointmentCountAttribute(); return $this->sendResponse($data, 'Admin Dashboard retrieve Successfully.'); } public function todayAppointment() { $vcardIds = Vcard::toBase()->whereTenantId(getLogInTenantId())->pluck('id')->toArray(); $today = Carbon::now()->format('Y-m-d'); $appointments = ScheduleAppointment::with('vcard')->whereIn('vcard_id', $vcardIds) ->whereDate('date', $today) ->orderBy('created_at', 'DESC') ->get(); $data = []; foreach ($appointments as $appointment) { $data[] = [ 'id' => $appointment->id, 'vcard_name' => $appointment->vcard->name, 'name' => $appointment->name, 'phone' => $appointment->phone, 'email' => $appointment->email, 'date' => $appointment->date, 'from_time' => $appointment->from_time, 'to_time' => $appointment->to_time, 'status' => $appointment->status, 'paid_amount' => $appointment->paid_amount, ]; } return $this->sendResponse($data, 'Admin Today Appointment data retrieve Successfully.'); } public function incomeChartData() { try { $input = [ 'start_date' => Carbon::now()->subDays(7)->format("Y-m-d H:m:s"), 'end_date' => Carbon::now()->format("Y-m-d H:m:s"), ]; $data = $this->vcardRepository->dashboardChartData($input); return $this->sendResponse($data, 'Data fetch successfully.'); } catch (Exception $e) { throw new UnprocessableEntityHttpException($e->getMessage()); } } } PK8\zG/ 7Controllers/API/Admin/SubscriptionPlanAPIController.phpnu[subscriptionRepo = $subscriptionRepo; } Public function subscriptionPlan() { $plans = Plan::with(['currency', 'planFeature'])->whereStatus(Plan::IS_ACTIVE)->get(); $data = []; foreach($plans as $plan){ $data[] = [ 'id' => $plan->id, 'name' => $plan->name, 'currency' => $plan->currency->currency_code, 'no_of_vcards' => $plan->no_of_vcards, 'trial_days' => $plan->trial_days, 'frequency' => $plan->frequency, 'price' => $plan->price, 'features' => getPlanFeature($plan), 'current_active_subscription' => (!empty(getCurrentSubscription()) && $plan->id == getCurrentSubscription()->plan_id && !getCurrentSubscription()->isExpired()), ]; } return $this->sendResponse($data, 'Subscription data retrieved successfully.'); } public function paymentStatus() { $tenantId = getLogInTenantId(); $plan = Subscription::whereTenantId($tenantId)->latest()->first(); $data = ($plan->status == Subscription::PENDING) ? 'Pending' : 'Approved'; return $this->sendResponse($data, 'Subscription data retrieved successfully.'); } public function buyPlan(Plan $plan) { $existingSubscription = Subscription::where('tenant_id', getLogInTenantId()) ->where('status', Subscription::PENDING) ->first(); if ($existingSubscription) { return $this->sendError('There is already a pending subscription request.'); } if ($plan->frequency == Plan::MONTHLY) { $newPlanDays = 30; } else { if ($plan->frequency == Plan::YEARLY) { $newPlanDays = 365; } else { $newPlanDays = 36500; } } $startsAt = Carbon::now(); $input = [ 'tenant_id' => getLogInTenantId(), 'plan_id' => $plan->id, 'plan_amount' => $plan->price, 'payable_amount' => $plan->price, 'plan_frequency' => $plan->frequency, 'starts_at' => Carbon::now(), 'ends_at' => $startsAt->copy()->addDays($newPlanDays), 'status' => Subscription::PENDING, 'no_of_vcards' => $plan->no_of_vcards, 'payment_type' => 'Cash', ]; $subscription = Subscription::create($input); return $this->sendSuccess('Subscription Plan purchase Successfully.'); } } PK8\#DD.Controllers/API/Admin/SettingAPIController.phpnu[userSettingRepository = $userSettingRepository; } public function editSettings() { $setting = UserSetting::where('user_id', getLogInUserId())->pluck('value', 'key')->toArray(); $language = Language::where('iso_code', getCurrentLanguageName())->value('name'); $data[] = [ 'language' => $language, 'time_format' => $setting['time_format'], ]; return $this->sendResponse($data, 'Setting data retrieved successfully.'); } public function updateSettings(UpdateUserSettingRequest $request) { $input = $request->all(); $id = Auth::id(); $setting = UserSetting::where('user_id', getLogInUserId())->where('key', 'time_format')->first(); $userVcards = Vcard::where('tenant_id', getLogInTenantId())->pluck('id')->toArray(); $bookedAppointment = ScheduleAppointment::whereIn('vcard_id', $userVcards)->where('status', ScheduleAppointment::PENDING)->count(); $timeFormat = $setting->value == UserSetting::HOUR_24 ? UserSetting::HOUR_24 : UserSetting::HOUR_12; $requestTimeFormat = isset($request->time_format) ? $request->time_format : $timeFormat; $this->userSettingRepository->updateAPI($input, $id); return $this->sendSuccess("Setting updated successfully"); } } PK8\5bControllers/API/Admin/error_lognu[[17-Jun-2026 09:30:26 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/VcardAPIController.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/VcardAPIController.php on line 15 [17-Jun-2026 12:11:56 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/EnquiryAPIController.php:11 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/EnquiryAPIController.php on line 11 [17-Jun-2026 15:46:02 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/DashboardAPIController.php:17 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/DashboardAPIController.php on line 17 [17-Jun-2026 18:07:54 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/BusinessAPIController.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/BusinessAPIController.php on line 13 [18-Jun-2026 02:42:41 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/AppointmentAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/AppointmentAPIController.php on line 12 [18-Jun-2026 14:20:41 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/SubscriptionPlanAPIController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/SubscriptionPlanAPIController.php on line 18 [18-Jun-2026 14:20:45 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/GroupAPIController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/GroupAPIController.php on line 10 [19-Jun-2026 07:34:25 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/SettingAPIController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/SettingAPIController.php on line 18 [19-Jun-2026 23:54:39 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/EnquiryAPIController.php:11 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/EnquiryAPIController.php on line 11 [19-Jun-2026 23:54:43 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/DashboardAPIController.php:17 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/DashboardAPIController.php on line 17 [19-Jun-2026 23:55:03 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/VcardAPIController.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/VcardAPIController.php on line 15 [20-Jun-2026 06:55:16 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/BusinessAPIController.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/BusinessAPIController.php on line 13 [20-Jun-2026 21:45:47 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/AppointmentAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/AppointmentAPIController.php on line 12 [16-Jul-2026 23:01:32 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/SubscriptionPlanAPIController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/SubscriptionPlanAPIController.php on line 18 [16-Jul-2026 23:27:00 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/AppointmentAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/AppointmentAPIController.php on line 12 [17-Jul-2026 13:24:14 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/BusinessAPIController.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/BusinessAPIController.php on line 13 [17-Jul-2026 14:52:18 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/DashboardAPIController.php:17 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/DashboardAPIController.php on line 17 [17-Jul-2026 18:58:45 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/SettingAPIController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/Admin/SettingAPIController.php on line 18 PK8\#Yr /Controllers/API/Admin/BusinessAPIController.phpnu[url_alias; $urlAlias = null; $parsedUrl = parse_url($url); if (isset($parsedUrl['path'])) { $pathParts = explode('/', $parsedUrl['path']); $urlAlias = end($pathParts); } $group = Group::where('tenant_id', getLogInTenantId())->first(); if (!$group) { return $this->sendError('Not group found & Add group'); } if (isset($urlAlias)) { $vcard = Vcard::where('url_alias', $urlAlias)->first(); if ($vcard) { BusinessCards::create([ 'tenant_id' => getLogInTenantId(), 'vcard_id' => $vcard->id, 'url' => route('vcard.show', ['alias' => $vcard->url_alias]), 'group_id' => $request->group_id, ]); return $this->sendSuccess('Business card created successfully.'); } } BusinessCards::create([ 'tenant_id' => getLogInTenantId(), 'vcard_id' => $request->id, 'url' => $url, 'group_id' => $request->group_id, ]); return $this->sendSuccess('Business card created successfully.'); } public function businessCardData(Request $request) { $filter = $request->all(); $tenantId = getLogInTenantId(); $businessCards = BusinessCards::with(['vcard', 'groups']) ->where('tenant_id', $tenantId)->when(!empty($request->filter), function ($query) use ($request) { $query->whereIn('group_id', $request->filter); })->get(); $data = []; foreach ($businessCards as $businessCard) { $data[] = [ 'id' => $businessCard->id, 'vcard_id' => $businessCard->vcard_id, 'url' => $businessCard->url, 'name' => $businessCard->vcard ? $businessCard->vcard->name : null, 'occupation' => $businessCard->vcard ? $businessCard->vcard->occupation : null, 'phone' => $businessCard->vcard ? $businessCard->vcard->phone : null, 'created_at' => $businessCard->vcard ? $businessCard->vcard->created_at : null, 'group_name' => $businessCard->groups->name, 'vcard_image' => !empty($businessCard->vcard->template) ? $businessCard->vcard->template->template_url : null, ]; } return $this->sendResponse($data, 'Business Data Retrieved Successfully.'); } } PK8\ `2r%Controllers/API/AuthAPIController.phpnu[userRepo = $userRepository; } public function login(Request $request): JsonResponse { $email = $request->get('email'); $password = $request->get('password'); if (empty($email) or empty($password)) { return $this->sendError(__('Username and password required.'), 422); } $user = User::whereRaw('lower(email) = ?', [$email])->first(); if (empty($user)) { return $this->sendError(__('Invalid username or password.'), 422); } if (!Hash::check($password, $user->password)) { return $this->sendError(__('Invalid username or password.'), 422); } if (!$user->email_verified_at) { return $this->sendError(__('Email not verified. Please verify your email before logging in.'), 422); } $token = $user->createToken('token')->plainTextToken; $user->last_name = $user->last_name ?? ''; if ($user->hasRole(Role::ROLE_SUPER_ADMIN)) { $data = [ 'token' => $token, 'user_id' => $user->id, 'role' => 'Super Admin', ]; } elseif ($user->hasRole(Role::ROLE_ADMIN)) { $data = [ 'token' => $token, 'user_id' => $user->id, 'role' => 'Admin', ]; } elseif ($user->hasRole(Role::ROLE_USER)){ $data = [ 'token' => $token, 'user_id' => $user->id, 'role' => 'User', ]; } else { return $this->sendError(__('Invalid username or password.'), 422); } return $this->sendResponse($data, __('Logged in successfully.')); } public function logout(): JsonResponse { auth()->user()->tokens()->where('id', Auth::user()->currentAccessToken()->id)->delete(); return $this->sendSuccess(__('Logout successfully.')); } public function sendPasswordResetLinkEmail(Request $request): JsonResponse { $request->validate(['email' => 'required|email', 'url_domain' => 'required']); $data['user'] = User::whereEmail($request->email)->first(); if (! $data['user']) { return $this->sendError(__('We can\'t find user with this email address.')); } $data['token'] = encrypt($data['user']->email.' '.$data['user']->id); $data['url'] = $request->url_domain.'//nfcdemo.com/createNewPassword?token='.$data['token'].'&email='.$request->email.'&apn=com.example.infyvcards_flutter'; Mail::to($data['user']->email) ->send(new ForgetPasswordMail('emails.forget_password', 'Reset Password Notification', $data)); $user = DB::table('password_reset_tokens')->where('email', $request->email)->first(); if ($user) { DB::table('password_reset_tokens')->where('email', $user->email)->update([ 'email' => $request->email, 'token' => $data['token'], 'created_at' => Carbon::now(), ]); } else { DB::table('password_reset_tokens')->insert([ 'email' => $request->email, 'token' => $data['token'], 'created_at' => Carbon::now(), ]); } return $this->sendSuccess(__('We have e-mailed your password reset link!')); } public function resetPassword(Request $request) { $passwordToken = DB::table('password_reset_tokens')->where('token', $request->token)->first(); if (empty($passwordToken)) { return $this->sendError('Invalid or expired password reset token.'); } $user = User::where('email', $passwordToken->email)->first(); $user->update([ 'password' => Hash::make($request->password), 'remember_token' => Str::random(60), ]); DB::table('password_reset_tokens')->where('token', $request->token)->delete(); return $this->sendSuccess('Password updated successfully.'); } public function changePassword(Request $request): JsonResponse { $user = User::where('email', $request->email)->first(); if (!$user) { return $this->sendError(__('Email not found.')); } if ($request->has('old_password') && !Hash::check($request->old_password, $user->password)) { return $this->sendError(__('Please enter correct old password')); } $user->password = Hash::make($request->password); $user->save(); return $this->sendSuccess(__('Password updated successfully')); } public function userDelete(User $user) { $tenant_id = getLogInTenantId(); $userData = User::where('tenant_id', $tenant_id)->where('id', $user->id)->first(); if ($userData && !$userData->hasRole(Role::ROLE_SUPER_ADMIN)) { $result = $this->userRepo->userDataDelete($userData); if ($result) { return $this->sendSuccess(__('User deleted successfully')); } } return $this->sendError('Error deleting user.'); } } PK8\Controllers/API/error_lognu[[17-Jun-2026 01:40:30 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/RegistrationAPIController.php:23 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/RegistrationAPIController.php on line 23 [17-Jun-2026 01:40:33 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/AuthAPIController.php:19 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/AuthAPIController.php on line 19 [19-Jun-2026 18:40:44 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/RegistrationAPIController.php:23 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/RegistrationAPIController.php on line 23 [19-Jun-2026 18:40:45 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/AuthAPIController.php:19 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/AuthAPIController.php on line 19 [16-Jul-2026 22:47:26 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/RegistrationAPIController.php:23 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/RegistrationAPIController.php on line 23 [16-Jul-2026 23:27:40 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/AuthAPIController.php:19 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/AuthAPIController.php on line 19 PK8\6c֎2Controllers/API/SuperAdmin/GroupsAPIController.phpnu[ $request->name, 'tenant_id' => getLogInTenantId(), ]); return $this->sendSuccess('Group created successfully.'); } public function groupData() { $groupsData = Group::all(); $data = []; foreach ($groupsData as $groupData) { $data[] = [ 'id' => $groupData->id, 'name' => $groupData->name, 'tenant_id' => $groupData->tenant_id, 'created_at' => $groupData->created_at, ]; } return $this->sendResponse($data, 'Groups data retrieved successfully.'); } public function deleteGroup($groupId) { $tenantId = getLogInTenantId(); $userVcard = Group::where('id', $groupId) ->where('tenant_id', $tenantId) ->first(); if (!$userVcard) { return $this->sendError('User Groups not found'); } $userVcard->delete(); return $this->sendSuccess('User Groups deleted successfully.'); } } PK8\:92Controllers/API/SuperAdmin/VcardsAPIController.phpnu[vcardRepository = $vcardRepository; } public function vcardsData() { $vcards = Vcard::all(); if ($vcards->isEmpty()) { return $this->sendError('No Vcards found', 404); } $data = []; foreach ($vcards as $vcard) { $data[] = [ 'id' => $vcard->id, 'name' => $vcard->name, 'url_alias' => route('vcard.show', ['alias' => $vcard->url_alias]), 'occupation' => $vcard->occupation, 'image' => !empty($vcard->template) ? $vcard->template->template_url : asset('assets/images/default_cover_image.jpg'), ]; } return $this->sendResponse($data, 'Vcards Data Retrieve Successfully.'); } public function vcard($vcard) { $vcard = Vcard::find($vcard); if (empty($vcard)) { return $this->sendError('Vcard not found', 404); } $data[] = [ 'id' => $vcard->id, 'name' => $vcard->name, 'occupation' => $vcard->occupation, 'image' => !empty($vcard->template) ? $vcard->template->template_url : asset('assets/images/default_cover_image.jpg'), 'created_at' => $vcard->created_at, ]; return $this->sendResponse($data, 'Vcards Data Retrieve Successfully.'); } public function qrcodeVcard($vcard) { $vcard = Vcard::where('id', $vcard)->first(); $data[] = [ 'url' => route('vcard.show', ['alias' => $vcard->url_alias]), ]; return $this->sendResponse($data, "Vcard Qr Code Retrieve Successfully."); } } PK8\5j 3Controllers/API/SuperAdmin/ProfileAPIController.phpnu[userRepository = $userRepository; } public function editProfile() { $user = Auth::user(); $settings = Setting::all(); $manualPaymentGuide = $settings->where('key', 'manual_payment_guide')->first(); $language = Language::where('iso_code', getCurrentLanguageName())->value('name'); $data = [ 'profile_image' => $user->profile_image, 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'email' => $user->email, 'region_code' => $user->region_code, 'contact' => $user->contact, 'language' => $language, 'manual_payment_guide' => $manualPaymentGuide ? $manualPaymentGuide->value : null, ]; return $this->sendResponse([$data], 'Profile Data Retrieved Successfully.'); } public function updateProfile(Request $request) { $this->userRepository->updateProfileAPI($request->all()); $input = $request->all(); $input = Arr::except($input, ['_token']); $input['manual_payment_guide'] = $input['manual_payment_guide'] ?? null; foreach ($input as $key => $value) { $manualPaymentGuide = Setting::where('key', $key)->first(); if ($manualPaymentGuide) { $manualPaymentGuide->update(['value' => $value]); } } return $this->sendSuccess('Profile updated Successfully.'); } public function updateLanguage(Request $request) { $input = $request->all(); $user = Auth::user(); if ($user !== null) { $user->update($input); } return $this->sendSuccess('Language update successfully.'); } } PK8\BaGG5Controllers/API/SuperAdmin/DashboardAPIController.phpnu[dashboardRepository = $dashboardRepo; } public function index() { $data['activeUsersCount'] = User::whereHas('roles', function ($q) { $q->where('name', '!=', 'super_admin'); })->where('is_active', 1)->count(); $data['deActiveUsersCount'] = User::whereHas('roles', function ($q) { $q->where('name', '!=', 'super_admin'); })->where('is_active', 0)->count(); if (Auth()->user()->hasRole(Role::ROLE_SUPER_ADMIN)) { $data['activeVcard'] = Vcard::whereStatus(1)->count(); $data['deActiveVcard'] = Vcard::whereStatus(0)->count(); return $this->sendResponse($data, 'Super Admin Dashboard retrieve Successfully'); } $data['activeVcard'] = Vcard::whereTenantId(auth()->user()->tenant_id)->get(); $data['deActiveVcard'] = Vcard::whereTenantId(auth()->user()->tenant_id)->whereStatus(0)->count(); return $this->sendResponse($data, 'Super Admin Dashboard retrieve Successfully'); } public function incomeChartData() { $input = [ 'start_date' => Carbon::now()->subDays(7)->format("Y-m-d H:m:s"), 'end_date' => Carbon::now()->format("Y-m-d H:m:s"), ]; $data = $this->dashboardRepository->incomeChartData($input); return $this->sendResponse($data, 'Income chart data fetch successfully.'); } } PK8\LL$Controllers/API/SuperAdmin/error_lognu[[17-Jun-2026 09:30:31 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/GroupsAPIController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/GroupsAPIController.php on line 10 [17-Jun-2026 10:54:59 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/VcardsAPIController.php:16 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/VcardsAPIController.php on line 16 [17-Jun-2026 12:11:41 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/DashboardAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/DashboardAPIController.php on line 12 [17-Jun-2026 12:11:51 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/BusinessAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/BusinessAPIController.php on line 12 [18-Jun-2026 02:42:37 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/ProfileAPIController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/ProfileAPIController.php on line 18 [19-Jun-2026 14:56:00 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/DashboardAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/DashboardAPIController.php on line 12 [19-Jun-2026 14:56:04 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/VcardsAPIController.php:16 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/VcardsAPIController.php on line 16 [19-Jun-2026 16:14:36 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/BusinessAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/BusinessAPIController.php on line 12 [19-Jun-2026 23:55:09 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/GroupsAPIController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/GroupsAPIController.php on line 10 [20-Jun-2026 23:21:38 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/ProfileAPIController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/ProfileAPIController.php on line 18 [17-Jul-2026 18:01:12 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/DashboardAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/DashboardAPIController.php on line 12 [17-Jul-2026 18:01:43 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/BusinessAPIController.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/BusinessAPIController.php on line 12 [17-Jul-2026 18:02:43 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/VcardsAPIController.php:16 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/VcardsAPIController.php on line 16 [17-Jul-2026 18:03:44 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/ProfileAPIController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/ProfileAPIController.php on line 18 [17-Jul-2026 18:04:48 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/GroupsAPIController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/API/SuperAdmin/GroupsAPIController.php on line 10 PK8\*%b b 4Controllers/API/SuperAdmin/BusinessAPIController.phpnu[url_alias; $urlAlias = null; $parsedUrl = parse_url($url); if (isset($parsedUrl['path'])) { $pathParts = explode('/', $parsedUrl['path']); $urlAlias = end($pathParts); } if (isset($urlAlias)) { $vcard = Vcard::where('url_alias', $urlAlias)->first(); if ($vcard) { BusinessCards::create([ 'tenant_id' => getLogInTenantId(), 'vcard_id' => $vcard->id, 'url' => route('vcard.show', ['alias' => $vcard->url_alias]), 'group_id' => $request->group_id, ]); return $this->sendSuccess('Business card created successfully.'); } } BusinessCards::create([ 'tenant_id' => getLogInTenantId(), 'vcard_id' => $request->id, 'url' => $url, 'group_id' => $request->group_id, ]); return $this->sendSuccess('Business card created successfully.'); } public function businessCardData(Request $request) { $filter = $request->all(); $businessCards = BusinessCards::with(['vcard','groups']) ->when(!empty($filter) ,function($q) use ($filter) { $q->whereIn('group_id', $filter['filter']); }) ->get(); $data = []; foreach ($businessCards as $businessCard) { $data[] = [ 'id' => $businessCard->id, 'vcard_id' => $businessCard->vcard_id, 'url' => $businessCard->url, 'name' => $businessCard->vcard ? $businessCard->vcard->name : null, 'occupation' => $businessCard->vcard ? $businessCard->vcard->occupation : null, 'phone' => $businessCard->vcard ? $businessCard->vcard->phone : null, 'created_at' => $businessCard->vcard ? $businessCard->vcard->created_at : null, 'group_name' => $businessCard->groups->name, 'vcard_image' => !empty($businessCard->vcard->template) ? $businessCard->vcard->template->template_url : null, ]; } return $this->sendResponse($data, 'Business Data Retrieve Successfully.'); } } PK8\Fb "Controllers/LanguageController.phpnu[languageRepository = $languageRepo; } /** * Display a listing of the resource. * * @return Factory|View */ public function index(): View { return view('sadmin.languages.index'); } public function language(): View { return view('sadmin.languages.default-language'); } public function updateStatus(Language $language): JsonResponse { if ($language->iso_code == getSuperAdminSettingValue('default_language')) { return $this->sendError(__('messages.flash.language_status_default')); } else { $language->update([ 'status' => !$language->status, ]); return $this->sendSuccess(__('messages.flash.language_status')); } } /** * Store a newly created resource in storage. */ public function store(CreateLanguageRequest $request): JsonResponse { $input = $request->all(); $allLanguagesArr = []; $languages = File::directories(base_path('lang')); foreach ($languages as $language) { $allLanguagesArr[] = substr($language, -2); } if (in_array($input['iso_code'], $allLanguagesArr)) { throw new UnprocessableEntityHttpException($input['iso_code'].' '.__('messages.placeholder.lang_already_exists')); } $language = $this->languageRepository->create($input); if (isset($input['flag']) && ! empty($input['flag'])) { $language->addMedia($input['flag'])->toMediaCollection(Language::LANGUAGE_PATH, config('app.media_disc')); } $translation = $this->languageRepository->translationFileCreate($language); Artisan::call('lang:js'); return $this->sendResponse($language, __('messages.placeholder.language_save')); } /** * Show the form for editing the specified resource. */ public function edit(Language $language): JsonResponse { return $this->sendResponse($language, 'Language retrieved successfully.'); } /** * Show the form for editing the specified resource. */ public function show(Language $language): JsonResponse { return $this->sendResponse($language, 'Language retrieved successfully.'); } /** * @param Language $language */ public function update(UpdateLanguageRequest $request, $id): JsonResponse { $language = Language::whereId($id)->firstOrFail(); $input = $request->all(); $this->languageRepository->updateLanguage($input, $language); return $this->sendSuccess(__('messages.flash.language_update')); } /** * Remove the specified resource from storage. * * * @throws \Exception */ public function destroy(Language $language): JsonResponse { if ($language->is_default == true) { return $this->sendError('Default Language can\'t be deleted.'); } $usesLang = User::whereIsActive(1)->pluck('language')->toArray(); if (in_array($language->iso_code, $usesLang)) { return $this->sendError('Uses Language can\'t be deleted.'); } if ($language->iso_code == getSuperAdminSettingValue('default_language')) { return $this->sendError('Default Setting Language can\'t be deleted.'); } $path = base_path('lang/').$language->iso_code; if (\File::exists($path)) { \File::deleteDirectory($path); $language->delete(); } else { return $this->sendError('Language not deleted.'); } Artisan::call('lang:js'); return $this->sendSuccess('Language deleted successfully.'); } /** * @return Application|Factory|\Illuminate\Contracts\View\View|RedirectResponse */ public function showTranslation(Language $language, Request $request) { $selectedLang = $request->get('name', $language->iso_code); $selectedFile = $request->get('file', 'messages.php'); $langExists = $this->languageRepository->checkLanguageExistOrNot($selectedLang); if (! $langExists) { return redirect()->back()->withErrors($selectedLang.' language not found.'); } $fileExists = $this->languageRepository->checkFileExistOrNot($selectedLang, $selectedFile); if (! $fileExists) { return redirect()->back()->withErrors($selectedFile.' file not found.'); } $oldLang = app()->getLocale(); $data = $this->languageRepository->getSubDirectoryFiles($selectedLang, $selectedFile); $data['id'] = $language->id; app()->setLocale($oldLang); return view('sadmin.languages.translation-manager.index', compact('selectedLang', 'selectedFile'))->with($data); } public function updateTranslation(Language $language, Request $request): RedirectResponse { $lName = $language->iso_code; $fileName = $request->get('file_name'); $fileExists = $this->languageRepository->checkFileExistOrNot($lName, $fileName); if (! $fileExists) { return redirect()->back()->withErrors('File not found.'); } if (! empty($lName)) { $result = $request->except(['_token', 'translate_language', 'file_name']); File::put(base_path('lang/').$lName.'/'.$fileName, ''); } Artisan::call('lang:js'); Flash::success(__('messages.flash.language_update')); return redirect()->route('languages.translation', $language->id); } public function getAllLanguage() { $getAllLanguage = Language::where('status', 1)->get(); $currentLanguage = Language::where([ 'status' => 1, 'iso_code' => getCurrentLanguageName(), ])->value('iso_code'); if (empty($currentLanguage)) { $currentLanguage = Language::where('status', 1)->value('iso_code'); } return $this->sendResponse(['getAllLanguage' => $getAllLanguage, 'currentLanguage' => $currentLanguage], 'language retrieve successfully'); } } PK8\'E|!Controllers/AboutUsController.phpnu[aboutUsRepository = $aboutUsRepository; } /** * @return Application|Factory|View */ public function index(): \Illuminate\View\View { $language = (getLogInUser()->language) ? getLogInUser()->language: 'en'; $aboutUs = AboutUs::where('language',$language)->with('media')->get(); if(!$aboutUs->first()){ $aboutUs =json_decode(json_encode( [ ['id'=>1, 'title'=>'', 'description'=>''], ['id'=>2, 'title'=>'', 'description'=>''], ['id'=>3, 'title'=>'', 'description'=>''] ] ), FALSE); } return view('sadmin.aboutUs.index', compact('aboutUs')); } public function store(CreateAboutUsRequest $request): RedirectResponse { $this->aboutUsRepository->store($request->all()); Flash::success(__('messages.flash.about_us_create')); return redirect(route('aboutUs.index')); } }PK8\lIz.h h 0Controllers/Webhooks/BrasilWebhookController.phpnuIwheader('asaas-access-token') ?? $request->header('x-asaas-token'); $expectedToken = config('services.asaas.webhook_token'); if ($expectedToken && $token !== $expectedToken) { Log::warning('[BrasilWebhook] Invalid token: ' . $token); return response()->json(['error' => 'Unauthorized'], 401); } $payload = $request->all(); $event = $payload['event'] ?? ''; Log::info('[BrasilWebhook] Event: ' . $event, [ 'payment_id' => $payload['payment']['id'] ?? null, 'external_ref' => $payload['payment']['externalReference'] ?? null, ]); return match ($event) { 'PAYMENT_CONFIRMED', 'PAYMENT_RECEIVED' => $this->handlePaymentConfirmed($payload), 'PAYMENT_OVERDUE' => $this->handlePaymentOverdue($payload), 'PAYMENT_DELETED', 'PAYMENT_REFUNDED' => $this->handlePaymentRefunded($payload), default => response()->json(['status' => 'event_ignored']), }; } private function handlePaymentConfirmed(array $payload): JsonResponse { $externalRef = $payload['payment']['externalReference'] ?? null; if (!$externalRef || !str_starts_with($externalRef, 'vcard_')) { Log::warning('[BrasilWebhook] Unknown externalReference: ' . $externalRef); return response()->json(['status' => 'skipped']); } $vcardId = (int) str_replace('vcard_', '', $externalRef); $vcard = Vcard::withTrashed()->find($vcardId); if (!$vcard) { Log::error('[BrasilWebhook] VCard not found: #' . $vcardId); return response()->json(['error' => 'vcard_not_found'], 404); } // Activate the card $vcard->update([ 'status' => 'active', 'payment_deadline' => null, 'nfc_status' => $vcard->nfc_status === 'none' ? 'none' : 'pending', ]); // Restore if soft-deleted before payment if ($vcard->trashed()) { $vcard->restore(); } Log::info("[BrasilWebhook] VCard#{$vcardId} ACTIVATED via PIX/Asaas"); return response()->json(['status' => 'activated', 'vcard_id' => $vcardId]); } private function handlePaymentOverdue(array $payload): JsonResponse { $externalRef = $payload['payment']['externalReference'] ?? null; Log::warning('[BrasilWebhook] Payment OVERDUE: ' . $externalRef); return response()->json(['status' => 'noted']); } private function handlePaymentRefunded(array $payload): JsonResponse { $externalRef = $payload['payment']['externalReference'] ?? null; Log::info('[BrasilWebhook] Payment REFUNDED: ' . $externalRef); return response()->json(['status' => 'noted']); } } PK8\u6Controllers/Webhooks/MultibancoPagamentoController.phpnuIwentityKey = config('services.ifthen.entity_key', ''); $this->subEntityKey = config('services.ifthen.sub_entity_key', ''); $this->antiPhishing = config('services.ifthen.anti_phishing', ''); } /** * Generate a Multibanco reference for a VCard payment * POST /pagamento/multibanco/{vcard} */ public function generate(Request $request, Vcard $vcard): JsonResponse { if ($vcard->user_id !== auth()->id()) { return response()->json(['error' => 'Unauthorized'], 403); } $region = config('app.region', 'PT'); $amount = $region === 'PT' ? 7.00 : 40.00; // Setup 5 + 1 month 2 $orderId = 'vcard_' . $vcard->id . '_' . time(); // Check if already has pending reference $existing = MultibancoReference::where('vcard_id', $vcard->id) ->where('status', 'pending') ->first(); if ($existing) { return response()->json([ 'status' => 'existing', 'entity' => $existing->entity, 'reference' => $existing->reference, 'amount' => $existing->amount, 'expires_at'=> $existing->expires_at, ]); } // Generate reference via IfthenPay API try { $response = Http::post('https://ifthenpay.com/api/multibanco/reference/init', [ 'mbKey' => $this->entityKey, 'orderId' => $orderId, 'amount' => number_format($amount, 2, '.', ''), 'expiryDays'=> 3, ]); if (!$response->ok()) { Log::error('[Multibanco] IfthenPay API error: ' . $response->status()); return response()->json(['error' => 'Gateway error'], 502); } $data = $response->json(); // Store reference in database $ref = MultibancoReference::create([ 'vcard_id' => $vcard->id, 'order_id' => $orderId, 'entity' => $data['Entity'] ?? '11249', 'reference' => $data['Reference'] ?? '', 'amount' => $amount, 'status' => 'pending', 'expires_at' => now()->addDays(3), ]); Log::info("[Multibanco] Reference generated: {$ref->entity}/{$ref->reference} for vcard#{$vcard->id}"); return response()->json([ 'status' => 'created', 'entity' => $ref->entity, 'reference' => $ref->reference, 'amount' => $ref->amount, 'expires_at'=> $ref->expires_at->format('d/m/Y'), 'message' => 'Utilize o ATM ou homebanking para efectuar o pagamento', ]); } catch (\Exception $e) { Log::error('[Multibanco] Exception: ' . $e->getMessage()); return response()->json(['error' => 'Internal error'], 500); } } /** * IfthenPay Webhook payment confirmed * POST /webhooks/portugal */ public function webhook(Request $request): JsonResponse { // Anti-phishing key validation $receivedKey = $request->input('chave') ?? $request->input('anti_phishing_key') ?? $request->header('x-ifthen-key'); if ($this->antiPhishing && $receivedKey !== $this->antiPhishing) { Log::warning('[PortugalWebhook] Invalid anti-phishing key'); return response()->json(['error' => 'Unauthorized'], 401); } $entity = $request->input('entidade') ?? $request->input('entity'); $reference = $request->input('referencia') ?? $request->input('reference'); $amount = (float)($request->input('valor') ?? $request->input('amount') ?? 0); Log::info("[PortugalWebhook] Payment received: {$entity}/{$reference} amount={$amount}"); $ref = MultibancoReference::where('reference', $reference) ->where('entity', $entity) ->where('status', 'pending') ->first(); if (!$ref) { Log::warning("[PortugalWebhook] Reference not found: {$entity}/{$reference}"); return response()->json(['status' => 'reference_not_found']); } // Validate amount (tolerance 1 cent) if (abs($amount - $ref->amount) > 0.01) { Log::warning("[PortugalWebhook] Amount mismatch: expected {$ref->amount}, got {$amount}"); } // Mark reference as paid $ref->update(['status' => 'paid', 'paid_at' => now()]); // Activate VCard $vcard = Vcard::withTrashed()->find($ref->vcard_id); if ($vcard) { $vcard->update([ 'status' => 'active', 'payment_deadline' => null, 'nfc_status' => 'pending', 'nfc_requested_at' => now(), ]); if ($vcard->trashed()) { $vcard->restore(); } Log::info("[PortugalWebhook] VCard#{$vcard->id} ACTIVATED via Multibanco"); } return response()->json(['status' => 'ok', 'vcard_id' => $ref->vcard_id]); } } PK8\bLLControllers/Webhooks/error_lognu[[17-Jun-2026 09:06:12 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Webhooks/BrasilWebhookController.php:17 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Webhooks/BrasilWebhookController.php on line 17 [18-Jun-2026 13:29:55 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Webhooks/MultibancoPagamentoController.php:22 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Webhooks/MultibancoPagamentoController.php on line 22 [16-Jul-2026 14:57:34 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Webhooks/MultibancoPagamentoController.php:22 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Webhooks/MultibancoPagamentoController.php on line 22 [16-Jul-2026 14:58:39 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Webhooks/BrasilWebhookController.php:17 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Webhooks/BrasilWebhookController.php on line 17 PK8\9_ _ Controllers/AsaasController.phpnuIwapiKey = env('ASAAS_API_KEY'); $this->baseUrl = env('ASAAS_BASE_URL', 'https://api.asaas.com/v3'); } public function showCheckout($planId) { $plan = Plan::with('currency')->findOrFail($planId); abort_unless($plan->currency->currency_code === 'BRL', 403); return view('asaas.checkout', compact('plan')); } public function processPayment(Request $request, $planId) { $request->validate([ 'cpf_cnpj' => ['required','string','min:11','max:18'], 'name' => ['required','string'], 'email' => ['required','email'], ]); $plan = Plan::with('currency')->findOrFail($planId); $cpf = preg_replace('/[^0-9]/', '', $request->cpf_cnpj); $customer = $this->createOrFindCustomer($cpf, $request->name, $request->email); if (!$customer || isset($customer['errors'])) { return back()->withErrors(['asaas' => 'Erro cliente: '.json_encode($customer['errors'] ?? [])]); } $userId = Auth::id(); $charge = $this->createPixCharge($customer['id'], $plan->price, 'Plano '.$plan->name, $planId, $userId); if (!$charge || isset($charge['errors'])) { return back()->withErrors(['asaas' => 'Erro cobranca: '.json_encode($charge['errors'] ?? [])]); } $pixData = $this->getPixQrCode($charge['id']); return view('asaas.pix', compact('plan', 'charge', 'pixData')); } private function createOrFindCustomer($cpfCnpj, $name, $email) { $search = Http::withHeaders(['access_token' => $this->apiKey]) ->get($this->baseUrl.'/customers', ['cpfCnpj' => $cpfCnpj]); if ($search->ok() && $search->json('totalCount') > 0) { return $search->json('data')[0]; } return Http::withHeaders(['access_token' => $this->apiKey]) ->post($this->baseUrl.'/customers', ['name' => $name, 'email' => $email, 'cpfCnpj' => $cpfCnpj]) ->json(); } private function createPixCharge($customerId, $value, $description, $planId, $userId) { return Http::withHeaders(['access_token' => $this->apiKey]) ->post($this->baseUrl.'/payments', [ 'customer' => $customerId, 'billingType' => 'PIX', 'value' => $value, 'dueDate' => date('Y-m-d', strtotime('+1 day')), 'description' => $description, 'externalReference' => 'plan_'.$planId.'_user_'.$userId, ])->json(); } private function getPixQrCode($chargeId) { return Http::withHeaders(['access_token' => $this->apiKey]) ->get($this->baseUrl.'/payments/'.$chargeId.'/pixQrCode') ->json(); } } PK8\t" " !Controllers/EnquiryController.phpnu[all(); $input['vcard_id'] = $vcard->id; $input['vcard_name'] = $vcard->name; $enquiry = Enquiry::create($input); if (isset($input['attachment']) && !empty($input['attachment'])) { $enquiry->addMedia($input['attachment'])->toMediaCollection(Enquiry::ATTACHMENT, config('app.media_disc')); } $email = empty($vcard->email) ? $vcard->user->email : $vcard->email; if (!empty($email)) { Mail::to($email)->send(new ContactUsMail($input, $email)); } setLocalLang(getLocalLanguage()); return $this->sendSuccess(__('messages.placeholder.enquiry_sent')); } public function show($id): JsonResponse { $enquiry = Enquiry::with('vcard', 'media')->where('id', '=', $id)->first(); return $this->sendResponse($enquiry, 'Testimonial successfully retrieved.'); } /** * @return Application|Factory|View * * @throws Exception */ public function enquiryList(Request $request): \Illuminate\View\View { return view('enquiry.list'); } public function destroy(Enquiry $enquiry): JsonResponse { $enquiry->delete(); return $this->sendSuccess('Enquiry deleted successfully.'); } public function inquiriesAttachmentDownload($id) { try { $enquiry = Enquiry::findOrFail($id); $documentMedia = $enquiry->media[0]; $documentPath = $documentMedia->getPath(); if (config('app.media_disc') === 'public') { $documentPath = Str::after($documentMedia->getUrl(), '/uploads'); } $file = Storage::disk(config('app.media_disc'))->get($documentPath); $headers = [ 'Content-Type' => $documentMedia->mime_type, 'Content-Description' => 'File Transfer', 'Content-Disposition' => "attachment; filename={$documentMedia->file_name}", 'filename' => $documentMedia->file_name, ]; return response($file, 200, $headers); } catch (Exception $e) { throw new UnprocessableEntityHttpException($e->getMessage()); } } } PK8\&|!"&Controllers/PaypalPayoutController.phpnu[get('withdrawalId')); $referenceId = $withdrawal->id; $email = $withdrawal->email; $amount = $withdrawal->amount; $currency = getSuperAdminSettingValue('default_currency'); $clientId = getSelectedPaymentGateway('paypal_client_id'); $clientSecret = getSelectedPaymentGateway('paypal_secret'); $mode = config('paypal.mode'); if ($mode == 'live') { $environment = new ProductionEnvironment($clientId, $clientSecret); } else { $environment = new SandboxEnvironment($clientId, $clientSecret); } if ($currency != null && ! in_array(strtoupper($currency), getPayPalSupportedCurrencies())) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported')); } $client = new PayPalHttpClient($environment); $request = new PayoutsPostRequest(); $note = 'Your '.currencyFormat($amount, 2).' Payout'; $body = json_decode( '{ "sender_batch_header": { "email_subject": "SDK payouts test txn" }, "items": [ { "recipient_type": "EMAIL", "receiver": '.json_encode($email).', "note": "'.$note.'", "sender_item_id": '.json_encode($referenceId).', "amount": { "currency": '.json_encode($currency).', "value": '.json_encode($amount).' } }] }', true); $request->body = $body; $response = $client->execute($request); return $this->sendResponse($response, __('messages.placeholder.withdrawal_request_send')); } } PK8\D@ Controllers/BannerController.phpnu[bannerRepo = $bannerRepo; } public function store(CreateBannerRequest $request) { $input = $request->all(); $this->bannerRepo->store($input ); return redirect()->back()->with('success', ' '.__('messages.flash.vcard_update')); } } PK8\'%L&&#Controllers/NfcOrdersController.phpnu[nfcOrderRepository = $nfcOrderRepository; } public function index() { return view('nfc.index'); } public function create() { $vcards = Vcard::whereTenantId(getLogInTenantId())->where('status', Vcard::ACTIVE)->pluck('name', 'id')->toArray(); $nfcCards = Nfc::all(); $paymentTypes = getPaymentGateway(); $currency = getCurrencyIcon(getSuperAdminSettingValue('default_currency')); return view('nfc.order', compact('vcards', 'nfcCards', 'paymentTypes', 'currency')); } public function getVcardData(Request $request) { $input = $request->all(); $vcard = Vcard::with('socialLink')->findOrFail($input['vcardId']); $data = [ 'id' => $vcard['id'], 'first_name' => $vcard['first_name'], 'last_name' => $vcard['last_name'], 'email' => $vcard['email'], 'occupation' => $vcard['occupation'], 'location' => $vcard['location'], 'phone' => $vcard['phone'], 'region_code' => $vcard['region_code'], 'company' => $vcard['company'], ]; return response()->json(['data' => $data, 'success' => true]); } public function store(NfcOrderRequest $request) { try { DB::beginTransaction(); $input = $request->all(); $input['user_id'] = getLogInUserId(); if($input['payment_method'] != NfcOrders::RAZOR_PAY){ $nfcOrder = NfcOrders::create($input); $nfcOrder->addMedia($input['logo'])->toMediaCollection(NfcOrders::LOGO_PATH); $orderId = $nfcOrder->id; $userId = $nfcOrder->user_id; $email = $input['email']; $nfc = NfcOrders::with('nfcCard')->findOrFail($orderId); } $currency = getSuperAdminSettingValue('default_currency'); if (isset($input['payment_method'])) { // PhonePe if ($input['payment_method'] == 6) { if($currency != "INR") { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_phonepe')); } /** @var PhonepeController $phonepe */ $phonepe = App::make(PhonepeController::class); $result = $phonepe->nfcOrder($orderId, $email, $nfc, $currency); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.phonepe_created')); } // Paystack if ($input['payment_method'] == 5) { if (isset($currency) && !in_array(strtoupper($currency), getPayStackSupportedCurrencies())) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_paystack')); } /** @var PaystackController $paystack */ $paystack = App::make(PaystackController::class); $result = $paystack->nfcOrder($orderId, $email, $nfc, $currency); DB::commit(); $targetUrl = $result->getTargetUrl(); return $this->sendResponse(['payment_method' => $input['payment_method'], $targetUrl], __('messages.placeholder.paystack_created')); } // Flutterwave if ($input['payment_method'] == 7) { $supportedCurrency = ['GBP', 'CAD', 'XAF', 'CLP', 'COP', 'EGP', 'EUR', 'GHS', 'GNF', 'KES', 'MWK', 'MAD', 'NGN', 'RWF', 'SLL', 'STD', 'ZAR', 'TZS', 'UGX', 'USD', 'XOF', 'ZMW']; if (isset($currency) && !in_array(strtoupper($currency), $supportedCurrency)) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_flutterwave')); } /** @var FlutterwaveController $paystack */ $flutterwave = App::make(FlutterwaveController::class); $targetUrl = $flutterwave->nfcOrder($orderId, $email, $nfc, $currency); DB::commit(); return $this->sendResponse(['payment_method' => $input['payment_method'], $targetUrl], __('messages.placeholder.flutterwave_created')); } //Stripe if ($input['payment_method'] == NfcOrders::STRIPE) { $repo = App::make(NfcOrderRepository::class); $result = $repo->userCreateSession($orderId, $email, $nfc, $currency); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.stripe_created')); } // Razor Pay if ($input['payment_method'] == NfcOrders::RAZOR_PAY) { $nfc = Nfc::get()->find($input['card_type']); $nfcOrder = NfcOrders::create($input); $nfcOrder->addMedia($input['logo'])->toMediaCollection(NfcOrders::LOGO_PATH); $orderId = $nfcOrder->id; $userId = $nfcOrder->user_id; $email = $input['email']; Session::put('orderid', $orderId); $repo = App::make(NfcOrderRepository::class); $result = $repo->userCreateRazorPaySession($input, $nfc, $currency); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.nfc.razorpay_session_success')); } //PayPal if ($input['payment_method'] == NfcOrders::PAYPAL) { if (isset($currency) && !in_array( strtoupper($currency), getPayPalSupportedCurrencies() )) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported')); } /** @var PaypalController $payPalCont */ $payPalCont = App::make(PaypalController::class); $result = $payPalCont->nfcOrderOnboard($orderId, $email, $nfc, $currency); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.paypal_created')); } //manual if ($input['payment_method'] == NfcOrders::MANUALLY) { NfcOrderTransaction::create([ 'nfc_order_id' => $orderId, 'type' => NfcOrders::MANUALLY, 'transaction_id' => null, 'amount' => $nfc->nfcCard->price * $nfc->quantity, 'user_id' => $userId, 'status' => NfcOrders::PENDING, ]); $vcardName = VCard::find($nfcOrder['vcard_id'])->name; $cardType = Nfc::find($nfcOrder['card_type'])->name; Mail::to(getSuperAdminSettingValue('email'))->send(new AdminNfcOrderMail($nfcOrder, $vcardName, $cardType)); Flash::success(__('messages.nfc.order_placed_success')); DB::commit(); return redirect(route('user.orders')); } } } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } public function updatePaymentStatus(NfcOrderTransaction $transaction) { $transaction->update([ 'status' => NfcOrders::SUCCESS, ]); return $this->sendSuccess(__('messages.nfc.payment_status_update_success')); } public function updateOrderStatus(Request $request, NfcOrders $order) { $status = $request['status']; $order->update([ 'order_status' => $status, ]); Mail::to($order['email'])->send(new NfcOrderStatusMail($order,$status)); return $this->sendSuccess(__('messages.nfc.order_status_update_success')); } public function show($nfcOrder) { $nfcCardOrder = NfcOrders::with('nfcTransaction','vcard','nfcCard','nfcPaymentType')->select('*')->findOrFail($nfcOrder); return view('nfc.columns.show', compact('nfcCardOrder')); } public function nfcCardDetails(Request $request): JsonResponse { $nfcCardDetails = Nfc::with('media') // Eager load the 'media' relationship ->whereId($request->id) ->first(); $currency = getCurrencyIcon(getSuperAdminSettingValue('default_currency')); return $this->sendResponse($nfcCardDetails,$currency, 'Nfc Card data successfully retrieved.'); } } PK8\jr-- Controllers/StripeController.phpnu[findOrFail($request->plan_id); setStripeApiKey(); $session = Session::create([ 'payment_method_types' => ['card'], 'customer_email' => getLogInUser()->email, 'line_items' => [ [ 'name' => $plan->name, 'amount' => ! in_array( $plan->currency->currency_code, zeroDecimalCurrencies() ) ? removeCommaFromNumbers($plan->price) * 100 : removeCommaFromNumbers($plan->price), 'currency' => $plan->currency->currency_code, 'quantity' => 1, ], ], 'success_url' => route('stripe.success', $plan->id) . '?session_id={CHECKOUT_SESSION_ID}', 'cancel_url' => route('stripe.failed') . '?error=payment_cancelled', ]); $result = [ 'sessionId' => $session['id'], ]; return $this->sendResponse($result, 'Subscription resumed successfully.'); } /** * @return Application|RedirectResponse|Redirector * * @throws Exception */ public function paymentSuccess(Request $request, Plan $plan): View { $sessionId = $request->get('session_id'); if (empty($sessionId)) { throw new UnprocessableEntityHttpException('session_id required'); } try { setStripeApiKey(); $sessionData = Session::retrieve($sessionId); DB::beginTransaction(); Transaction::create([ 'transaction_id' => $sessionData->payment_intent, 'amount' => $sessionData->amount_total / 100, 'type' => Transaction::STRIPE, ]); Subscription::whereTenantId(getLogInTenantId()) ->whereIsActive(true)->update(['is_active' => false]); $expiryDate = setExpiryDate($plan); Subscription::create([ 'plan_id' => $plan->id, 'expiry_at' => $expiryDate, 'is_active' => true, ]); AffiliateUser::whereUserId(getLogInUserId())->withoutGlobalScopes() ->update(['is_verified' => 1]); DB::commit(); Flash::success(__('messages.placeholder.purchased_plan')); return view('sadmin.plans.payment.paymentSuccess'); } catch (ApiErrorException $e) { DB::rollBack(); throw new Exception($e->getMessage(), $e->getCode()); } } public function paymentFailed(Request $request): View { return view('sadmin.plans.payment.paymentcancel'); } /** * @return Application|RedirectResponse|Redirector * * @throws Exception */ public function userPaymentSuccess(Request $request): RedirectResponse { $sessionId = $request->get('session_id'); if (empty($sessionId)) { throw new UnprocessableEntityHttpException('session_id required'); } $vcard = Vcard::with('tenant.user', 'template')->where('id', $request->get('vcard_id'))->first(); $userId = $vcard->tenant->user->id; try { setUserStripeApiKey($userId); $sessionData = Session::retrieve($sessionId); $currencyId = Currency::whereCurrencyCode($sessionData->currency)->first()->id; DB::beginTransaction(); $appointmentTran = AppointmentTransaction::create([ 'vcard_id' => $vcard->id, 'transaction_id' => $sessionData->payment_intent, 'currency_id' => $currencyId, 'amount' => $sessionData->amount_total / 100, 'tenant_id' => $vcard->tenant->id, 'type' => Appointment::STRIPE, 'status' => Transaction::SUCCESS, 'meta' => json_encode($sessionData), ]); $appointmentInput = session()->get('appointment_details'); session()->forget('appointment_details'); $appointmentInput['appointment_tran_id'] = $appointmentTran->id; /** @var AppointmentRepository $appointmentRepo */ $appointmentRepo = App::make(AppointmentRepository::class); $vcardEmail = is_null($vcard->email) ? $vcard->tenant->user->email : $vcard->email; $appointmentRepo->appointmentStoreOrEmail($appointmentInput, $vcardEmail); $url = ($vcard->template->name == 'vcard11') ? $vcard->url_alias . '/contact' : $vcard->url_alias; App::setLocale(FacadesSession::get('languageChange_' . $vcard->url_alias)); DB::commit(); Flash::success('Payment successfully done'); return redirect(route('vcard.show', [$url, __('messages.placeholder.appointment_created')])); } catch (ApiErrorException $e) { DB::rollBack(); throw new Exception($e->getMessage(), $e->getCode()); } } /** * @return Application|RedirectResponse|Redirector */ public function userHandleFailedPayment(Request $request): RedirectResponse { session()->forget('appointment_details'); $vcardId = $request->get('vcard_id'); $vcard = Vcard::findOrFail($vcardId); Flash::error(__('messages.placeholder.payment_cancel')); return redirect(route('vcard.show', $vcard->url_alias)); } public function productBuySuccess(Request $request): RedirectResponse { $sessionId = $request->get('session_id'); if (empty($sessionId)) { throw new UnprocessableEntityHttpException('session_id required'); } $input = session()->get('input'); session()->forget('input'); $product = Product::whereId($input['product_id'])->first(); $userId = $product->vcard->user->id; if (empty($product->currency_id)) { $product->currency_id = getUserSettingValue('currency_id', $userId); } $currencyId = Currency::whereId($product->currency_id)->first()->id; try { setUserStripeApiKey($userId); $sessionData = Session::retrieve($sessionId); DB::beginTransaction(); ProductTransaction::create([ 'product_id' => $input['product_id'], 'name' => $input['name'], 'email' => $input['email'], 'phone' => $input['phone'], 'address' => $input['address'], 'currency_id' => $currencyId, 'meta' => json_encode($sessionData), 'type' => $input['payment_method'], 'transaction_id' => $sessionData->payment_intent, 'amount' => $sessionData->amount_total / 100, ]); $orderMailData = [ 'user_name' => $product->vcard->user->full_name, 'customer_name' => $input['name'], 'product_name' => $product->name, 'product_price' => $product->price, 'phone' => $input['phone'], 'address' => $input['address'], 'payment_type' => __('messages.stripe'), 'order_date' => Carbon::now()->format('d M Y'), ]; if (getUserSettingValue('product_order_send_mail_customer', $userId)) { Mail::to($input['email'])->send(new ProductOrderSendCustomer($orderMailData)); } if (getUserSettingValue('product_order_send_mail_user', $userId)) { Mail::to($product->vcard->user->email)->send(new ProductOrderSendUser($orderMailData)); } $vcard = $product->vcard; App::setLocale(FacadesSession::get('languageChange_' . $vcard->url_alias)); DB::commit(); return redirect(route('showProducts', [$vcard->id, $vcard->url_alias, __('messages.placeholder.product_purchase')])); } catch (ApiErrorException $e) { DB::rollBack(); throw new Exception($e->getMessage(), $e->getCode()); } } public function productBuyFailed(): RedirectResponse { $input = session()->get('input'); session()->forget('input'); $product = Product::whereId($input['product_id'])->first(); $vcard = $product->vcard; return redirect(route('showProducts', [$vcard->id, $vcard->url_alias])); } public function nfcPurchaseSuccess(Request $request) { $input = $request->all(); $nfcOrder = NfcOrders::get()->find($input['order_id']); $sessionId = $input['session_id']; setStripeApiKey(); $sessionData = Session::retrieve($sessionId); if (empty($sessionId)) { throw new UnprocessableEntityHttpException('session_id required'); } NfcOrderTransaction::create([ 'nfc_order_id' => $input['order_id'], 'type' => NfcOrders::STRIPE, 'transaction_id' => $sessionData->payment_intent, 'amount' => $sessionData->amount_total / 100, 'user_id' => getLogInUser()->id, 'status' => NfcOrders::SUCCESS, ]); $vcardName = VCard::find($nfcOrder['vcard_id'])->name; $cardType = Nfc::find($nfcOrder['card_type'])->name; App::setLocale(getLogInUser()->language); Mail::to(getSuperAdminSettingValue('email'))->send(new AdminNfcOrderMail($nfcOrder, $vcardName, $cardType)); Flash::success(__('messages.nfc.order_placed_success')); return redirect(route('user.orders')); } public function nfcPurchaseFailed(Request $request) { $input = $request->all(); $sessionId = $input['session_id']; setStripeApiKey(); $sessionData = Session::retrieve($sessionId); NfcOrderTransaction::create([ 'nfc_order_id' => $input['order_id'], 'type' => NfcOrders::STRIPE, 'amount' => $sessionData->amount_total / 100, 'user_id' => getLogInUser()->id, 'status' => NfcOrders::FAIL, ]); Flash::error(__('messages.placeholder.payment_cancel')); return redirect(route('user.orders')); } } PK8\7f f #Controllers/DashboardController.phpnu[dashboardRepository = $dashboardRepo; } /** * @return Application|Factory|View */ public function index(): \Illuminate\View\View { $activeUsersCount = User::whereHas('roles', function ($q) { $q->where('name', '!=', 'super_admin'); })->where('is_active', 1)->count(); $deActiveUsersCount = User::whereHas('roles', function ($q) { $q->where('name', '!=', 'super_admin'); })->where('is_active', 0)->count(); $enquiry = $this->dashboardRepository->getEnquiryCountAttribute(); $appointment = $this->dashboardRepository->getAppointmentCountAttribute(); if (\Request::is('sadmin/dashboard')) { $activeVcard = Vcard::whereStatus(1)->count(); $deActiveVcard = Vcard::whereStatus(0)->count(); return view('dashboard.index', compact('activeUsersCount', 'deActiveUsersCount', 'activeVcard', 'deActiveVcard')); } $activeVcard = Vcard::whereTenantId(auth()->user()->tenant_id)->whereStatus(1)->count(); $deActiveVcard = Vcard::whereTenantId(auth()->user()->tenant_id)->whereStatus(0)->count(); return view('dashboard.index', compact('enquiry', 'appointment', 'activeVcard', 'deActiveVcard')); } public function getUsersList(Request $request): JsonResponse { $input = $request->all(); $data['users'] = $this->dashboardRepository->usersData($input); return $this->sendResponse($data, 'Users retrieved successfully.'); } public function appointments(): JsonResponse { $vcardIds = Vcard::toBase()->whereTenantId(getLogInTenantId())->pluck('id')->toArray(); $today = Carbon::now()->format('Y-m-d'); $appointments = ScheduleAppointment::with('vcard')->whereIn('vcard_id', $vcardIds)->whereDate('date', $today)->orderBy('created_at', 'DESC') ->paginate(5); return $this->sendResponse($appointments, 'Appointment retrieved successfully.'); } public function planChartData(): JsonResponse { $data = $this->dashboardRepository->planChartData(); return $this->sendResponse($data, 'Plan chart data fetch successfully.'); } public function incomeChartData(Request $request): JsonResponse { $input = $request->all(); $data = $this->dashboardRepository->incomeChartData($input); return $this->sendResponse($data, 'Income chart data fetch successfully.'); } } PK8\LELL%Controllers/TestimonialController.phpnu[testimonialRepo = $testimonialRepo; } public function store(CreateTestimonialRequest $request): JsonResponse { $input = $request->all(); $testimonial = $this->testimonialRepo->store($input); return $this->sendResponse($testimonial, __('messages.flash.create_testimonial')); } public function edit(Testimonial $testimonial): JsonResponse { return $this->sendResponse($testimonial, 'Testimonial successfully retrieved.'); } public function update(UpdateTestimonialRequest $request, Testimonial $testimonial): JsonResponse { $input = $request->all(); $testimonial = $this->testimonialRepo->update($input, $testimonial->id); return $this->sendResponse($testimonial, __('messages.flash.update_testimonial')); } public function destroy(Testimonial $testimonial): JsonResponse { $testimonial->clearMediaCollection(Testimonial::TESTIMONIAL_PATH); $testimonial->delete(); return $this->sendSuccess('Testimonial deleted successfully.'); } } PK8\C&&)Controllers/UserFlutterwaveController.phpnu[ $clientId, 'flutterwave.secretKey' => $clientSecret, ]); $reference = FlutterWave::generateReference(); $data = [ 'payment_options' => 'card,banktransfer', 'amount' => $amount, 'email' => $vcard->tenant->user->email, 'tx_ref' => $reference, 'currency' => $currencyCode, 'redirect_url' => route('flutterwave.appointment.success'), 'customer' => [ 'email' => getLogInUser()->email, ], 'customizations' => [ 'title' => 'Appointment Book Payment', ], 'meta' => [ 'vcard_id' => $vcard->id, 'amount' => $amount, 'payment_mode' => Appointment::FLUTTERWAVE, ], ]; $payment = FlutterWave::initializePayment($data); if ($payment['status'] !== 'success') { return redirect()->route('vcard.show', ['alias' => $vcard->url_alias]); } session(['vcard_user_id' => $userId, 'tenant_id' => $vcard->tenant->id, 'vcard_id' => $vcard->id, 'appointment_details' => $input]); $url = $payment['data']['link']; return $url; } public function flutterwaveAppointmentSuccess(Request $request) { $input = $request->all(); $userId = session()->get('vcard_user_id'); $currencyCode = Currency::whereId(getUserSettingValue('currency_id', $userId))->first(); $clientId = getUserSettingValue('flutterwave_key', $userId); $clientSecret = getUserSettingValue('flutterwave_secret', $userId); config([ 'flutterwave.publicKey' => $clientId, 'flutterwave.secretKey' => $clientSecret, ]); if ($input['status'] == 'successful') { $transactionID = FlutterWave::getTransactionIDFromCallback(); $flutterWaveData = FlutterWave::verifyTransaction($transactionID); $data = $flutterWaveData['data']; $amount = $data['amount']; $vcardId = $data['meta']['vcard_id']; $tenantId = session()->get('tenant_id'); $transactionId = $input['transaction_id']; $currencyCode = $data['currency']; $currencyId = Currency::whereCurrencyCode($currencyCode)->first()->id; $vcard = Vcard::with('tenant.user')->where('id', $vcardId)->first(); $transactionDetails = [ 'vcard_id' => $vcardId, 'transaction_id' => $transactionId, 'currency_id' => $currencyId, 'amount' => $amount, 'tenant_id' => $tenantId, 'type' => Appointment::FLUTTERWAVE, 'status' => Transaction::SUCCESS, 'meta' => json_encode($data), ]; $appointmentTran = AppointmentTransaction::create($transactionDetails); $appointmentInput = session()->get('appointment_details'); session()->forget('appointment_details'); $appointmentInput['appointment_tran_id'] = $appointmentTran->id; /** @var AppointmentRepository $appointmentRepo */ $appointmentRepo = App::make(AppointmentRepository::class); $vcardEmail = is_null($vcard->email) ? $vcard->tenant->user->email : $vcard->email; $appointmentRepo->appointmentStoreOrEmail($appointmentInput, $vcardEmail); session()->forget(['vcard_user_id', 'tenant_id', 'vcard_id']); Flash::success(__('messages.placeholder.payment_done')); App::setLocale(Session::get('languageChange_' . $vcard->url_alias)); return redirect(route('vcard.show', [$vcard->url_alias, __('messages.placeholder.appointment_created')])); } } public function productBuy($input, $product) { $userId = $product->vcard->user->id; $vcard = $product->vcard; $clientId = getUserSettingValue('flutterwave_key', $userId); $clientSecret = getUserSettingValue('flutterwave_secret', $userId); config([ 'flutterwave.publicKey' => $clientId, 'flutterwave.secretKey' => $clientSecret, ]); if (empty($product->currency_id)) { $product->currency_id = getUserSettingValue('currency_id', $userId); } $currencyCode = Currency::whereId($product->currency_id)->first()->currency_code; $email = $input['email']; $productId = $product->id; $productAmount = $product->price; $reference = FlutterWave::generateReference(); $data = [ 'payment_options' => 'card,banktransfer', 'amount' => $productAmount, 'email' => is_null($vcard->email) ? $vcard->tenant->user->email : $vcard->email, 'tx_ref' => $reference, 'currency' => $currencyCode, 'redirect_url' => route('flutterwave.product.success'), 'customer' => [ 'email' => $email, ], 'customizations' => [ 'title' => 'Product Buy Payment', ], 'meta' => [ 'product_id' => $productId, 'amount' => $productAmount, 'payment_mode' => Product::FLUTTERWAVE, ], ]; $payment = FlutterWave::initializePayment($data); if ($payment['status'] !== 'success') { return redirect()->route('showProducts', [$vcard->id, $vcard->url_alias]); } session()->put(['input' => $input]); session()->put(['vcard_user_id' => $userId]); $url = $payment['data']['link']; return $url; } public function flutterwaveProductSuccess(Request $request) { $input = $request->all(); $userId = session()->get('vcard_user_id'); $clientId = getUserSettingValue('flutterwave_key', $userId); $clientSecret = getUserSettingValue('flutterwave_secret', $userId); config([ 'flutterwave.publicKey' => $clientId, 'flutterwave.secretKey' => $clientSecret, ]); if ($input['status'] == 'successful') { $transactionID = FlutterWave::getTransactionIDFromCallback(); $flutterWaveData = FlutterWave::verifyTransaction($transactionID); $data = $flutterWaveData['data']; $amount = $data['amount']; $transactionId = $input['transaction_id']; $sessionInput = session()->get('input'); $product = Product::whereId($sessionInput['product_id'])->first(); if (empty($product->currency_id)) { $product->currency_id = getUserSettingValue('currency_id', $userId); } $currencyId = Currency::whereId($product->currency_id)->first()->id; ProductTransaction::create([ 'product_id' => $sessionInput['product_id'], 'name' => $sessionInput['name'], 'email' => $sessionInput['email'], 'phone' => $sessionInput['phone'], 'address' => $sessionInput['address'], 'currency_id' => $currencyId, 'meta' => json_encode($data), 'type' => $sessionInput['payment_method'], 'transaction_id' => $transactionId, 'amount' => $amount, ]); $orderMailData = [ 'user_name' => $product->vcard->user->full_name, 'customer_name' => $sessionInput['name'], 'product_name' => $product->name, 'product_price' => $product->price, 'phone' => $sessionInput['phone'], 'address' => $sessionInput['address'], 'payment_type' => __('messages.flutterwave'), 'order_date' => Carbon::now()->format('d M Y'), ]; if (getUserSettingValue('product_order_send_mail_customer', $userId)) { Mail::to($sessionInput['email'])->send(new ProductOrderSendCustomer($orderMailData)); } if (getUserSettingValue('product_order_send_mail_user', $userId)) { Mail::to($product->vcard->user->email)->send(new ProductOrderSendUser($orderMailData)); } $vcard = $product->vcard; App::setLocale(Session::get('languageChange_' . $vcard->url_alias)); session()->forget('input'); session()->forget('vcard_user_id'); DB::commit(); return redirect(route('showProducts', [$vcard->id, $vcard->url_alias, __('messages.placeholder.product_purchase')])); } } } PK8\[55*Controllers/VcardSubscribersController.phpnu[all(); $input['vcard_id'] = Vcard::whereUrlAlias($input['vcard_alias'])->first()->id; if (isset($input['subscribe']) && $input['subscribe'] == "true") { VcardSubscribers::create($input); return $this->sendSuccess('User subscribed successfully.'); } $playerExist = VcardSubscribers::where('player_id', $input['player_id'])->first(); if ($playerExist) { $exist = VcardSubscribers::where('player_id', $input['player_id']) ->where('vcard_id', $input['vcard_id']) ->first(); if (!$exist) { return $this->sendError("Error"); } } else { VcardSubscribers::create($input); } return $this->sendSuccess('User subscribed successfully.'); } } PK8\>Ł##"Controllers/PaystackController.phpnu[subscriptionRepository = $subscriptionRepository; } public function redirectToGateway(Request $request) { $clientId = getSelectedPaymentGateway('paystack_key'); $clientSecret = getSelectedPaymentGateway('paystack_secret'); config([ 'paystack.publicKey' => $clientId, 'paystack.secretKey' => $clientSecret, 'paystack.paymentUrl' => "https://api.paystack.co", ]); $supportedCurrency = ['NGN', 'USD', 'GHS', 'ZAR', 'KES']; $plan = Plan::with('currency')->findOrFail($request->planId); if ($plan->currency->currency_code != null && !in_array(strtoupper($plan->currency->currency_code), getPayStackSupportedCurrencies())) { Flash::error(__('messages.placeholder.this_currency_is_not_supported_paystack')); return Redirect()->back(); } $data = $this->subscriptionRepository->manageSubscription($request->all()); if (!isset($data['plan'])) { if (isset($data['status']) && $data['status'] == true) { Flash::error(__('messages.subscription_pricing_plans.has_been_subscribed')); return Redirect()->back(); } else { if (isset($data['status']) && $data['status'] == false) { Flash::error(__('messages.placeholder.cannot_switch_to_zero')); return Redirect()->back(); } } } $subscriptionsPricingPlan = $data['plan']; $subscription = $data['subscription']; try { $request->merge([ 'email' => $request->user()->email, 'orderID' => $subscription->id, 'amount' => $data['amountToPay'] * 100, 'quantity' => 1, 'currency' => $plan->currency->currency_code, 'reference' => Paystack::genTranxRef(), 'metadata' => json_encode(['subscription_id' => $subscription->id]), ]); return Paystack::getAuthorizationUrl()->redirectNow(); } catch (\Exception $e) { Flash::error(__('messages.setting.paystack_credential')); return Redirect()->back(); } } public function handleGatewayCallback(Request $request) { $clientId = getSelectedPaymentGateway('paystack_key'); $clientSecret = getSelectedPaymentGateway('paystack_secret'); config([ 'paystack.publicKey' => $clientId, 'paystack.secretKey' => $clientSecret, 'paystack.paymentUrl' => "https://api.paystack.co", ]); $response = Paystack::getPaymentData(); $transactionID = $response['data']['id']; $transactionAmount = $response['data']['requested_amount'] / 100; $subscriptionId = $response['data']['metadata']['subscription_id'] ?? null; try { if(isset($subscriptionId)){ Subscription::findOrFail($subscriptionId)->update([ 'payment_type' => Subscription::PAYSTACK, 'status' => Subscription::ACTIVE ]); // De-Active all other subscription Subscription::whereTenantId(getLogInTenantId()) ->where('id', '!=', $subscriptionId) ->where('status', '!=', Subscription::REJECT) ->update([ 'status' => Subscription::INACTIVE, ]); $transaction = Transaction::create([ 'transaction_id' => $transactionID, 'type' => Transaction::PAYSTACK, 'amount' => $transactionAmount, 'status' => Subscription::ACTIVE, 'meta' => json_encode($response), ]); // updating the transaction id on the subscription table $subscription = Subscription::findOrFail($subscriptionId); $planName = $subscription->plan->name; $subscription->update(['transaction_id' => $transaction->id]); $affiliateAmount = getSuperAdminSettingValue('affiliation_amount'); $affiliateAmountType = getSuperAdminSettingValue('affiliation_amount_type'); if($affiliateAmountType == 1){ AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $affiliateAmount,'is_verified' => 1]); }else if($affiliateAmountType == 2){ $amount = $transactionAmount * $affiliateAmount / 100; AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $amount,'is_verified' => 1]); } $userEmail = getLogInUser()->email; $firstName = getLogInUser()->first_name; $lastName = getLogInUser()->last_name; $emailData = [ 'first_name' => $firstName, 'last_name' => $lastName, 'planName' => $planName, ]; manageVcards(); Mail::to($userEmail)->send(new SubscriptionPaymentSuccessMail($emailData)); return view('sadmin.plans.payment.paymentSuccess'); }else{ $orderId = session()->get('order_id'); $type = NfcOrders::PAYSTACK; $transactionId = $response['data']['id']; $amount = $response['data']['requested_amount']/100; $userId = NfcOrders::findOrFail($orderId)->user_id; $status = NfcOrders::SUCCESS; $nfcOrder = NfcOrders::get()->find($orderId); $transactionDetails = [ 'nfc_order_id' => $orderId, 'type' => $type, 'transaction_id' => $transactionId, 'amount' => $amount, 'user_id' => $userId, 'status' => $status, ]; NfcOrderTransaction::create($transactionDetails); session()->forget(['vcard_user_id', 'tenant_id', 'vcard_id', 'order_details', 'order_id']); $vcardName = Vcard::find($nfcOrder['vcard_id'])->name; $cardType = Nfc::find($nfcOrder['card_type'])->name; Mail::to(getSuperAdminSettingValue('email'))->send(new AdminNfcOrderMail($nfcOrder, $vcardName, $cardType)); Flash::success(__('messages.nfc.order_placed_success')); return redirect(route('user.orders')); } } catch (HttpException $ex) { print_r($ex->getMessage()); } } public function nfcOrder($orderId, $email, $nfc, $currency) { $clientId = getSelectedPaymentGateway('paystack_key'); $clientSecret = getSelectedPaymentGateway('paystack_secret'); config([ 'paystack.publicKey' => $clientId, 'paystack.secretKey' => $clientSecret, 'paystack.paymentUrl' => "https://api.paystack.co", ]); try { $data = [ 'email' => $nfc->email, 'orderID' => $orderId, 'amount' => $nfc->nfcCard->price * $nfc->quantity * 100, 'quantity' => 1, 'currency' => $currency, 'reference' => Paystack::genTranxRef(), 'metadata' => json_encode(['nfc_id' => $orderId]), ]; $result = Paystack::getAuthorizationUrl($data)->redirectNow(); session()->put(['order_details' => $nfc,'order_id' => $orderId]); return $result; } catch (\Exception $e) { Flash::error(__('messages.setting.paystack_credential')); return Redirect()->back(); } } } PK8\V3Controllers/HomeController.phpnu[where('language', $language)->get(); $faqs = FrontFAQs::where('language', $language)->first(); $metas = Meta::first(); if (! empty($metas)) { $metas = $metas->toArray(); } $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $aboutUS = AboutUs::with('media')->where('language', $language)->get()->toArray(); $features = Feature::where('language', $language)->get(); // Isolamento regional de planos por hostname $host = request()->getHost(); $currencyCode = 'EUR'; // default Europa if (str_contains($host, '.com.br')) { $currencyCode = 'BRL'; } elseif (str_contains($host, '.pt')) { $currencyCode = 'EUR'; } $plans = Plan::with(['currency', 'planFeature', 'hasZeroPlan', 'planCustomFields']) ->whereIsDefault(Plan::IS_DEACTIVE) ->whereStatus(Plan::IS_ACTIVE) ->whereHas('currency', function ($q) use ($currencyCode) { $q->where('currency_code', $currencyCode); }) ->get(); $homePage = getSuperAdminSettingValue('home_page_theme') == 1 ? 'home' : 'home1'; $view = getSuperAdminSettingValue('is_front_page') ? view("front.home.$homePage", compact('plans', 'setting', 'features', 'testimonials', 'aboutUS', 'metas', 'faqs')) : redirect(route('login')); return $view; } public function store(CreateContactRequest $request) { $input = $request->all(); $user = getSuperAdminEmail(); ContactUs::create($input); Mail::to($user) ->send(new LandingContactUsMail( $input, __('messages.placeholder.message_sent') )); return $this->sendSuccess(__('messages.placeholder.message_sent')); } /** * @return Application|Factory|View */ public function showContactUs(): \Illuminate\View\View { return view('sadmin.contactus.index'); } public function destroyContactUs(ContactUs $enquiry): JsonResponse { $enquiry->delete(); return $this->sendSuccess(__('messages.flash.enquiry_delete')); } public function themeConfiguration(): \Illuminate\View\View { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key'); $view = view('settings.theme_config.index', compact('setting')); return $view; } public function changeLanguage(Request $request): RedirectResponse { Session::put('languageName', $request->input('languageName')); return redirect()->back(); } public function banner(Request $request): \Illuminate\View\View { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key'); return view('sadmin.supportBanner.index', compact('setting')); } public function appDownload(Request $request): \Illuminate\View\View { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key'); return view('sadmin.supportMobile.index', compact('setting')); } /** * @return Application|Factory|View|RedirectResponse|Redirector */ public function termCondition() { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $faqs = FrontFAQs::where('language', $language)->first(); $view = view('front.terms_conditions', compact('setting', 'faqs')); return $view; } /** * @return Application|Factory|View */ public function privacyPolicy(): \Illuminate\View\View { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $faqs = FrontFAQs::where('language', $language)->first(); return view('front.privacy_policy', compact('setting', 'faqs')); } public function declineCookie() { session(['declined' => 1]); } public function vcardTemplates() { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $faqs = FrontFAQs::where('language', $language)->first(); return view('front.home.vcards-templates', compact('setting', 'faqs')); } public function forntFaq() { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $blogs = Blog::where('status', '1')->get(); $faq = FrontFAQs::where('language', $language)->get(); $faqs = FrontFAQs::where('language', $language)->first(); if (getSuperAdminSettingValue('home_page_theme') == 2) { return view('front.home.home-faq1', compact('setting', 'faq', 'faqs', 'blogs')); } else { return view('front.home.home-faq', compact('setting', 'faq', 'faqs', 'blogs')); } } public function ForntBlog() { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $blogs = Blog::where('status', '1')->get(); $faqs = FrontFAQs::where('language', $language)->first(); if (getSuperAdminSettingValue('home_page_theme') == 2) { return view('front.home.home-blog1', compact('blogs', 'faqs', 'setting')); } else { return view('front.home.home-blog', compact('blogs', 'faqs', 'setting')); } } public function ForntBlogShow($slug) { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $faqs = FrontFAQs::where('language', $language)->first(); $blog = Blog::where('slug', $slug)->first(); if (!$blog->status) { abort(404); } if (getSuperAdminSettingValue('home_page_theme') == 2) { return view('front.home.home-blog-show1', compact('blog', 'faqs', 'setting')); } else { return view('front.home.home-blog-show', compact('blog', 'faqs', 'setting')); } } } PK8\:ʨ0!Controllers/GalleryController.phpnu[galleryRepo = $galleryRepo; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request, $id) { } /** * Store a newly created resource in storage. * * @return \Illuminate\Http\Response */ public function store(CreateGalleryRequest $request) { $input = $request->all(); $this->galleryRepo->store($input); return $this->sendSuccess(__('messages.placeholder.gallery_created')); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit(Gallery $gallery) { return $this->sendResponse($gallery, 'Gallery successfully retrieved.'); } /** * Update the specified resource in storage. * * @param int $id * @return \Illuminate\Http\Response */ public function update(UpdateGalleryRequest $request, Gallery $gallery) { $input = $request->all(); $this->galleryRepo->update($input, $gallery->id); return $this->sendSuccess(__('messages.placeholder.gallery_updated')); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy(gallery $gallery) { $gallery->clearMediaCollection(GALLERY::GALLERY_PATH); $gallery->delete(); return $this->sendSuccess('VCard service deleted successfully.'); } } PK8\C  -Controllers/AffiliationWithdrawController.phpnu[plan; if (! $currentPlan->planFeature->affiliation) { return redirect()->route('admin.dashboard'); } $currentUserId = Auth::id(); $totalAmount = AffiliateUser::whereAffiliatedBy($currentUserId)->sum('amount'); $currentAmount = currentAffiliateAmount($currentUserId); return view('user-settings.affiliationWithdraw.index', compact('totalAmount', 'currentAmount')); } public function withdrawAmount(createWithdrawAmountRequest $request) { $currentUserId = getLogInUserId(); $inProcessWithdrawal = Withdrawal::whereUserId($currentUserId)->whereIsApproved(Withdrawal::INPROCESS)->first(); if ($inProcessWithdrawal) { return $this->sendError(__('messages.affiliation.withdraw_pending')); } $input = $request->all(); if ($input['amount'] > currentAffiliateAmount()) { return $this->sendError(__('messages.affiliation.withdraw_more_than_balance')); } if ($input['paypal_email'] == null && $input['bank_details'] == null) { return $this->sendError(__('Enter your PayPal Email or Bank Details')); } if (!empty($input['paypal_email']) && (getUserSettingValue('paypal_email', $currentUserId) != $input['paypal_email'])) { return $this->sendError(__('messages.affiliation.paypal_email_not_match')); } $withdrawal = new Withdrawal(); $withdrawal->amount = $input['amount']; $withdrawal->user_id = $currentUserId; $withdrawal->email = $input['paypal_email'] ?? null; $withdrawal->bank_details = $input['bank_details'] ?? null; $withdrawal->is_approved = Withdrawal::INPROCESS; $withdrawal->save(); return $this->sendResponse($withdrawal, __('messages.affiliation.withdraw_request_sent')); } public function affiliationWithdraw(): View { return view('sadmin.affiliationWithdraw.index'); } public function changeWithdrawalStatus(Request $request, $id, $approval) { $rejectionNote = $request->rejectionNote; $meta = $request->meta; $withdrawal = Withdrawal::find($id); $withdrawal->update([ 'is_approved' => $approval, 'rejection_note' => ($approval == Withdrawal::REJECTED) ? $rejectionNote : null, ]); if ($approval == Withdrawal::APPROVED) { WithdrawalTransaction::create([ 'withdrawal_id' => $withdrawal->id, 'amount' => $withdrawal->amount, 'paid_by' => $meta ? WithdrawalTransaction::PAYPAL : WithdrawalTransaction::MANUALLY, 'payment_meta' => $meta, ]); } SendWithdrawRequestMailJob::dispatch($withdrawal->id, $approval); return $this->sendResponse($withdrawal, __('messages.affiliation.withdrawal_update')); } public function withdrawTransaction(): View { return view('sadmin.withdrawalTransactions.index'); } public function showAffiliationWithdraw($id) { $affiliationWithdraw = Withdrawal::with('user')->find($id); $affiliationWithdraw['formattedAmount'] = currencyFormat($affiliationWithdraw->amount, 2); if (isAdmin() && $affiliationWithdraw->user_id !== getLogInUserId()) { return $this->sendError('Withdrawal data not found'); } return $this->sendResponse($affiliationWithdraw, 'Withdrawal data retrieved successfully.'); } public function sendInvite(Request $request) { $affiliateCode = getLogInUser()->affiliate_code; $affliateName = getLogInUser()->full_name; $referralURL = URL::to('/register?referral-code=' . $affiliateCode); $input = [ 'referralUrl' => $referralURL, 'username' => $affliateName, ]; Mail::to($request['email']) ->send(new SendinviteMail($input, $request['email'])); return $this->sendSuccess('Successfully send'); } } PK8\ZG::!Controllers/PhonepeController.phpnu[subscriptionRepository = $subscriptionRepository; } public function phonePe(Request $request) { $data = $this->subscriptionRepository->manageSubscription($request->all()); $subscription = $data['subscription']; $currency =$subscription->plan->currency->currency_code; if($currency != "INR") { Flash::error(__('messages.placeholder.this_currency_is_not_supported_phonepe')); return redirect()->back(); } $email = $request->user()->email; $amount = $data['amountToPay']; $redirectbackurl = route('phonepe-subscription-response'). '?' . http_build_query(['subscriptionId' => $subscription->id , 'userId' => getLogInUserId()]); $merchantId = getSelectedPaymentGateway('phonepe_merchant_id'); $merchantUserId = getSelectedPaymentGateway('phonepe_merchant_id'); $baseUrl = getSelectedPaymentGateway('phonepe_env') == 'production' ? 'https://api.phonepe.com/apis/hermes' : 'https://api-preprod.phonepe.com/apis/pg-sandbox'; $saltKey = getSelectedPaymentGateway('phonepe_salt_key'); $saltIndex = getSelectedPaymentGateway('phonepe_salt_index'); $callbackurl = route('phonepe-subscription-response'); config([ 'phonepe.merchantId' => $merchantId, 'phonepe.merchantUserId' => $merchantUserId, 'phonepe.env' => $baseUrl, 'phonepe.saltKey' => $saltKey, 'phonepe.saltIndex' => $saltIndex, 'phonepe.redirectUrl' => $redirectbackurl, 'phonepe.callBackUrl' => $callbackurl, ]); $transactionId = date('dmYhmi') . rand(111111, 999999); $data = array( 'merchantId' => $merchantId, 'merchantTransactionId' => $transactionId, 'merchantUserId' => $merchantUserId, 'amount' => $amount * 100, 'redirectUrl' => $redirectbackurl, 'redirectMode' => 'POST', 'callbackUrl' => $callbackurl, 'paymentInstrument' => array( 'type' => 'PAY_PAGE', ), ); $encode = base64_encode(json_encode($data)); $string = $encode . '/pg/v1/pay' . $saltKey; $sha256 = hash('sha256', $string); $finalXHeader = $sha256 . '###' . $saltIndex; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $baseUrl . '/pg/v1/pay', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode(['request' => $encode]), CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'X-VERIFY: ' . $finalXHeader ), )); $response = curl_exec($curl); curl_close($curl); $rData = json_decode($response); $url = $rData->data->instrumentResponse->redirectInfo->url; return redirect()->away($url); } public function callbackPhonePe(Request $request) { $merchantId = getSelectedPaymentGateway('phonepe_merchant_id'); $merchantUserId = getSelectedPaymentGateway('phonepe_merchant_id'); $baseUrl = getSelectedPaymentGateway('phonepe_env') == 'production' ? 'https://api.phonepe.com/apis/hermes' : 'https://api-preprod.phonepe.com/apis/pg-sandbox'; $saltKey = getSelectedPaymentGateway('phonepe_salt_key'); $saltIndex = getSelectedPaymentGateway('phonepe_salt_index'); $callbackurl = route('phonepe-subscription-response'); config([ 'phonepe.merchantId' => $merchantId, 'phonepe.merchantUserId' => $merchantUserId, 'phonepe.env' => $baseUrl, 'phonepe.saltKey' => $saltKey, 'phonepe.saltIndex' => $saltIndex, 'phonepe.callBackUrl' => $callbackurl, ]); $finalXHeader = hash('sha256','/pg/v1/status/'.$request['merchantId'].'/'.$request['transactionId'].$saltKey).'###'.$saltIndex; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $baseUrl.'/pg/v1/status/'.$request['merchantId'].'/'.$request['transactionId'], CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'accept: application/json', 'X-VERIFY: '.$finalXHeader, 'X-MERCHANT-ID: '.$request['merchantId'] ), )); $responses = curl_exec($curl); $response = json_decode($responses); curl_close($curl); try { $transactionID = $response->data->transactionId; $transactionAmount = $response->data->amount / 100; $subscriptionId = request()->input('subscriptionId'); $userId = request()->input('userId'); Auth::loginUsingId($userId); Subscription::findOrFail($subscriptionId)->update([ 'payment_type' => Subscription::PHONEPE, 'status' => Subscription::ACTIVE ]); Subscription::findOrFail($subscriptionId)->get(); // De-Active all other subscription Subscription::whereTenantId(getLogInTenantId()) ->where('id', '!=', $subscriptionId) ->where('status', '!=', Subscription::REJECT) ->update([ 'status' => Subscription::INACTIVE, ]); $transaction = Transaction::create([ 'transaction_id' => $transactionID, 'type' => Transaction::PHONEPE, 'amount' => $transactionAmount, 'status' => Subscription::ACTIVE, 'meta' => json_encode($response), ]); // updating the transaction id on the subscription table $subscription = Subscription::findOrFail($subscriptionId); $subscription->update(['transaction_id' => $transaction->id]); $affiliateAmount = getSuperAdminSettingValue('affiliation_amount'); $affiliateAmountType = getSuperAdminSettingValue('affiliation_amount_type'); if($affiliateAmountType == 1){ AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $affiliateAmount,'is_verified' => 1]); }else if($affiliateAmountType == 2){ $amount = $transactionAmount * $affiliateAmount / 100; AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $amount,'is_verified' => 1]); } $planName = $subscription->plan->name; $userEmail = getLogInUser()->email; $firstName = getLogInUser()->first_name; $lastName = getLogInUser()->last_name; $emailData = [ 'subscriptionId' => $subscriptionId, 'subscriptionAmount' => $transactionAmount, 'transactionID' => $transactionID, 'planName' => $planName, 'first_name' => $firstName, 'last_name' => $lastName, ]; manageVcards(); Mail::to($userEmail)->send(new SubscriptionPaymentSuccessMail($emailData)); return view('sadmin.plans.payment.paymentSuccess'); } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } public function nfcOrder($orderId, $email, $nfc, $currency) { $amount = $nfc->nfcCard->price * $nfc->quantity; $redirectbackurl = route('phonepe-nfcorder-response'). '?' . http_build_query(['nfcorderId' => $orderId]); $merchantId = getSelectedPaymentGateway('phonepe_merchant_id'); $merchantUserId = getSelectedPaymentGateway('phonepe_merchant_id'); $baseUrl = getSelectedPaymentGateway('phonepe_env') == 'production' ? 'https://api.phonepe.com/apis/hermes' : 'https://api-preprod.phonepe.com/apis/pg-sandbox'; $saltKey = getSelectedPaymentGateway('phonepe_salt_key'); $saltIndex = getSelectedPaymentGateway('phonepe_salt_index'); $callbackurl = route('phonepe-nfcorder-response'); config([ 'phonepe.merchantId' => $merchantId, 'phonepe.merchantUserId' => $merchantUserId, 'phonepe.env' => $baseUrl, 'phonepe.saltKey' => $saltKey, 'phonepe.saltIndex' => $saltIndex, 'phonepe.redirectUrl' => $redirectbackurl, 'phonepe.callBackUrl' => $callbackurl, ]); $transactionId = date('dmYhmi') . rand(111111, 999999); $data = array( 'merchantId' => $merchantId, 'merchantTransactionId' => $transactionId, 'merchantUserId' => $merchantUserId, 'amount' => $amount * 100, 'redirectUrl' => $redirectbackurl, 'redirectMode' => 'POST', 'callbackUrl' => $callbackurl, 'paymentInstrument' => array( 'type' => 'PAY_PAGE', ), ); $encode = base64_encode(json_encode($data)); $string = $encode . '/pg/v1/pay' . $saltKey; $sha256 = hash('sha256', $string); $finalXHeader = $sha256 . '###' . $saltIndex; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $baseUrl . '/pg/v1/pay', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode(['request' => $encode]), CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'X-VERIFY: ' . $finalXHeader ), )); $response = curl_exec($curl); curl_close($curl); $rData = json_decode($response); $url = $rData->data->instrumentResponse->redirectInfo->url; return response()->json(['link' => $url, 'status' => 200]); } public function nfcOrderSuccess(Request $request) { $merchantId = getSelectedPaymentGateway('phonepe_merchant_id'); $merchantUserId = getSelectedPaymentGateway('phonepe_merchant_id'); $baseUrl = getSelectedPaymentGateway('phonepe_env') == 'production' ? 'https://api.phonepe.com/apis/hermes' : 'https://api-preprod.phonepe.com/apis/pg-sandbox'; $saltKey = getSelectedPaymentGateway('phonepe_salt_key'); $saltIndex = getSelectedPaymentGateway('phonepe_salt_index'); $callbackurl = route('phonepe-subscription-response'); config([ 'phonepe.merchantId' => $merchantId, 'phonepe.merchantUserId' => $merchantUserId, 'phonepe.env' => $baseUrl, 'phonepe.saltKey' => $saltKey, 'phonepe.saltIndex' => $saltIndex, 'phonepe.callBackUrl' => $callbackurl, ]); $finalXHeader = hash('sha256','/pg/v1/status/'.$request['merchantId'].'/'.$request['transactionId'].$saltKey).'###'.$saltIndex; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $baseUrl.'/pg/v1/status/'.$request['merchantId'].'/'.$request['transactionId'], CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'accept: application/json', 'X-VERIFY: '.$finalXHeader, 'X-MERCHANT-ID: '.$request['merchantId'] ), )); $responses = curl_exec($curl); $response = json_decode($responses); curl_close($curl); try { $orderId = request()->input('nfcorderId'); $userId = NfcOrders::findOrFail($orderId)->user_id; Auth::loginUsingId($userId); $status = NfcOrders::SUCCESS; $nfcOrder = NfcOrders::get()->find($orderId); $type = NfcOrders::PHONEPE; $transactionId = $response->data->transactionId ; $amount = $response->data->amount / 100; $transactionDetails = [ 'nfc_order_id' => $orderId, 'type' => $type, 'transaction_id' => $transactionId, 'amount' => $amount, 'user_id' => $userId, 'status' => $status, ]; NfcOrderTransaction::create($transactionDetails); $vcardName = Vcard::find($nfcOrder['vcard_id'])->name; $cardType = Nfc::find($nfcOrder['card_type'])->name; Mail::to(getSuperAdminSettingValue('email'))->send(new AdminNfcOrderMail($nfcOrder, $vcardName, $cardType)); Flash::success(__('messages.nfc.order_placed_success')); Auth::loginUsingId($userId); return redirect(route('user.orders')); } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } } PK8\@ Controllers/ECardsController.phpnu[tenant_id; $vCards = Vcard::whereTenantId($tenantId)->pluck('name', 'id'); return view('virtual-backgrounds.index', compact('vCards')); } public function getVcardData(Request $request): JsonResponse { $input = $request->all(); $vcard = Vcard::with('socialLink')->findOrFail($input['vcardId']); $data = [ 'id' => $vcard['id'], 'first_name' => $vcard['first_name'], 'last_name' => $vcard['last_name'], 'email' => $vcard['email'], 'occupation' => $vcard['occupation'], 'location' => $vcard['location'], 'region_code' => $vcard['region_code'], 'phone' => $vcard['phone'], 'website' => $vcard['socialLink']['website'], ]; return response()->json(['data' => $data, 'success' => true]); } public function downloadEcard(CreateEcardRequest $request): RedirectResponse { $input = $request->all(); $path = asset('uploads/ecard'); if (! Storage::exists($path)) { Storage::disk('public')->makeDirectory('uploads/ecard'); } $zipFile = public_path('virtual_backgrounds/virtual-backgrounds.zip'); if (File::exists($zipFile)) { File::delete($zipFile); } if ($input['e-card-id'] == 1) { $data = retriveH1Card($input); } if ($input['e-card-id'] == 2) { $data = retriveH2Card($input); } if ($input['e-card-id'] == 3) { $data = retriveH3Card($input); } if ($input['e-card-id'] == 4) { $data = retriveH4Card($input); } if ($input['e-card-id'] == 5) { $data = retriveH5Card($input); } if ($input['e-card-id'] == 6) { $data = retriveH6Card($input); } if ($input['e-card-id'] == 7) { $data = retriveH7Card($input); } if ($input['e-card-id'] == 8) { $data = retriveH8Card($input); } if ($input['e-card-id'] == 9) { $data = retriveH9Card($input); } if ($input['e-card-id'] == 10) { $data = retriveH10Card($input); } if ($input['e-card-id'] == 11) { $data = retriveH11Card($input); } if ($input['e-card-id'] == 12) { $data = retriveH12Card($input); } if ($input['e-card-id'] == 13) { $data = retriveH13Card($input); } // delete images after generate zip file $vcardId = $input['vcard_id']; $qrCodeImage = public_path('ecard/'.$vcardId.'-qr.png'); $frontImage = public_path('virtual_backgrounds/Front.jpg'); $backImage = public_path('virtual_backgrounds/Back.jpg'); $frontImage1 = public_path('uploads/ecard/'.$vcardId .'/Front.png'); $backImage1 = public_path('uploads/ecard/'.$vcardId.'/Back.png'); $directory = public_path('uploads/ecard/'.$vcardId); if (File::exists($qrCodeImage)) { File::delete($qrCodeImage); } if (File::exists($frontImage)) { File::delete($frontImage); } if (File::exists($backImage)) { File::delete($backImage); } if (File::exists($frontImage1)) { File::delete($frontImage1); } if (File::exists($backImage1)) { File::delete($backImage1); File::deleteDirectory($directory); } return redirect(asset($data[0])); } public function getEcard(Request $request): \Illuminate\View\View { return view(); } public function create($ecard): \Illuminate\View\View { $vcards = Vcard::whereTenantId(getLogInTenantId())->where('status', Vcard::ACTIVE)->pluck('name', 'id')->toArray(); return view('virtual-backgrounds.create', compact('vcards', 'ecard')); } public function store(Request $request, $cardImageId) { } public function custom(): View|Factory|Application { $tenantId = Auth::user()->tenant_id; $vcards = Vcard::whereTenantId($tenantId)->pluck('name', 'id'); return view('virtual-backgrounds.custom', compact('vcards')); } public function qrCode(Request $request) { $link = $request->input('link'); $qrcode = QrCode::size(100)->generate($link); return $qrcode; } } PK8\Ǻ'Controllers/AffiliateUserController.phpnu[subscriptionRepository = $subscriptionRepository; } public function onBoard(Request $request): JsonResponse { $data = $this->subscriptionRepository->manageSubscription($request->all()); $subscription = $data['subscription']; $api = new Api(getSelectedPaymentGateway('razorpay_key'), getSelectedPaymentGateway('razorpay_secret')); $orderData = [ 'receipt' => 1, 'amount' => $data['amountToPay'] * 100, 'currency' => $subscription->plan->currency->currency_code, 'notes' => [ 'email' => Auth::user()->email, 'name' => Auth::user()->full_name, 'subscriptionId' => $subscription->id, 'amountToPay' => $data['amountToPay'], ], ]; session(['payment_type' => request()->get('payment_type')]); $razorpayOrder = $api->order->create($orderData); $data['id'] = $razorpayOrder->id; $data['amount'] = $data['amountToPay']; $data['name'] = Auth::user()->full_name; $data['email'] = Auth::user()->email; $data['contact'] = Auth::user()->contact; return $this->sendResponse($data, 'Order created successfully'); } /** * @return false|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse */ public function paymentSuccess(Request $request) { $input = $request->all(); Log::info('RazorPay Payment Successfully'); Log::info($input); $api = new Api(getSelectedPaymentGateway('razorpay_key'), getSelectedPaymentGateway('razorpay_secret')); if (count($input) && ! empty($input['razorpay_payment_id'])) { try { $payment = $api->payment->fetch($input['razorpay_payment_id']); $generatedSignature = hash_hmac( 'sha256', $payment['order_id'] . '|' . $input['razorpay_payment_id'], getSelectedPaymentGateway('razorpay_secret') ); if ($generatedSignature != $input['razorpay_signature']) { return redirect()->back(); } // Create Transaction Here $subscriptionID = $payment['notes']['subscriptionId']; $amountToPay = $payment['notes']['amountToPay']; $subscription = Subscription::findOrFail($subscriptionID); Subscription::findOrFail($subscriptionID)->update([ 'payment_type' => Subscription::RAZORPAY, 'status' => Subscription::ACTIVE ]); // De-Active all other subscription Subscription::whereTenantId(getLogInTenantId()) ->where('id', '!=', $subscriptionID) ->where('status', '!=', Subscription::REJECT) ->update([ 'status' => Subscription::INACTIVE, ]); $transaction = Transaction::create([ 'tenant_id' => $subscription->tenant_id, 'transaction_id' => $payment->id, 'type' => session('payment_type'), 'amount' => $amountToPay, 'status' => Subscription::ACTIVE, 'meta' => json_encode($payment->toArray()), ]); $subscription = Subscription::findOrFail($subscriptionID); $planName = $subscription->plan->name; $subscription->update(['transaction_id' => $transaction->id]); $affiliateAmount = getSuperAdminSettingValue('affiliation_amount'); $affiliateAmountType = getSuperAdminSettingValue('affiliation_amount_type'); if ($affiliateAmountType == 1) { AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $affiliateAmount, 'is_verified' => 1]); } else if ($affiliateAmountType == 2) { $amount = $amountToPay * $affiliateAmount / 100; AffiliateUser::whereUserId(getLogInUserId())->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $amount, 'is_verified' => 1]); } $userEmail = getLogInUser()->email; $firstName = getLogInUser()->first_name; $lastName = getLogInUser()->last_name; $emailData = [ 'subscriptionID' => $subscriptionID, 'amountToPay' => $amountToPay, 'planName' => $planName, 'first_name' => $firstName, 'last_name' => $lastName, ]; manageVcards(); Mail::to($userEmail)->send(new SubscriptionPaymentSuccessMail($emailData)); return view('sadmin.plans.payment.paymentSuccess'); } catch (Exception $e) { return false; } } return redirect()->back(); } /** * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View */ public function paymentFailed(): View { return view('sadmin.plans.payment.paymentcancel'); } public function nfcPaymentSuccess(Request $request) { $input = $request->all(); $api = new Api(getSelectedPaymentGateway('razorpay_key'), getSelectedPaymentGateway('razorpay_secret')); if (count($input) && ! empty($input['razorpay_payment_id'])) { try { $payment = $api->payment->fetch($input['razorpay_payment_id']); $generatedSignature = hash_hmac( 'sha256', $payment['order_id'] . '|' . $input['razorpay_payment_id'], getSelectedPaymentGateway('razorpay_secret') ); if ($generatedSignature != $input['razorpay_signature']) { return redirect()->back(); } // $nfcOrder = NfcOrders::create([ // 'name' => $payment['notes']['customer_name'], // 'designation' => $payment['notes']['designation'], // 'phone' => $payment['notes']['phone'], // 'email' => $payment['notes']['email'], // 'address' => $payment['notes']['address'], // 'company_name' => $payment['notes']['company_name'], // 'order_status' => NfcOrders::PENDING, // 'card_type' => $payment['notes']['card_type'], // 'user_id' => getLogInUserId(), // 'vcard_id' => $payment['notes']['vcard_id'], // ]); $id = session()->get('orderid'); NfcOrders::where('id', $id)->update(['order_status' => NfcOrders::PENDING]); $nfcOrder = NfcOrders::where('id', $id)->get(); $vcardName = VCard::find($nfcOrder[0]->vcard_id)->name; $cardType = Nfc::find($nfcOrder[0]->card_type)->name; NfcOrderTransaction::create([ 'nfc_order_id' => $id, 'type' => NfcOrders::RAZOR_PAY, 'transaction_id' => $payment->id, 'amount' => $payment['notes']['amountToPay'], 'user_id' => getLogInUser()->id, 'status' => NfcOrders::SUCCESS, ]); Mail::to(getSuperAdminSettingValue('email'))->send(new AdminNfcOrderMail($nfcOrder[0], $vcardName, $cardType)); Flash::success(__('messages.nfc.order_placed_success')); return redirect(route('user.orders')); } catch (Exception $e) { Log::info($e->getMessage()); return false; } } return redirect()->back(); } public function nfcPaymentFailed(Request $request): View { $input = $request->all(); $api = new Api(getSelectedPaymentGateway('razorpay_key'), getSelectedPaymentGateway('razorpay_secret')); $payment = $api->payment->fetch($input['razorpay_payment_id']); $id = session()->get('orderid'); NfcOrders::where('id', $id)->update(['order_status' => NfcOrders::PENDING]); $nfcOrder = NfcOrders::where('id', $id)->get(); NfcOrderTransaction::create([ 'nfc_order_id' => $id, 'type' => NfcOrders::RAZOR_PAY, 'transaction_id' => $payment->id, 'amount' => $payment['notes']['amountToPay'], 'user_id' => getLogInUser()->id, 'status' => NfcOrders::FAIL, ]); return view('sadmin.plans.payment.paymentcancel'); } public function productPaymentSuccess(Request $request) { $input = $request->all(); $product = Session::get('productId'); $userId = $product->vcard->user->id; $api = new Api(getUserSettingValue('razorpay_key', $userId), getUserSettingValue('razorpay_secret', $userId)); $payment = $api->payment->fetch($input['razorpay_payment_id']); $generatedSignature = hash_hmac( 'sha256', $payment['order_id'] . '|' . $input['razorpay_payment_id'], getSelectedPaymentGateway('razorpay_secret') ); if ($generatedSignature != $input['razorpay_signature']) { return redirect()->back(); } if (empty($product->currency_id)) { $product->currency_id = getUserSettingValue('currency_id', $userId); } $currencyId = Currency::whereId($product->currency_id)->first()->id; $name = $payment['notes']['name']; $email = $payment['notes']['email']; $contact = $payment['contact']; $address = $payment['notes']['address']; $currency = $payment['currency']; $payment_type = $payment['notes']['payment_type']; $amount = $payment['amount'] / 100; $transaction_id = $payment['id']; try { DB::beginTransaction(); ProductTransaction::create([ 'product_id' => $product->id, 'name' => $name, 'email' => $email, 'phone' => $contact, 'address' => $address, 'currency_id' => $currencyId, 'meta' => json_encode($payment), 'type' => $payment_type, 'transaction_id' => $transaction_id, 'amount' => $amount, ]); $orderMailData = [ 'user_name' => $product->vcard->user->full_name, 'customer_name' => $name, 'product_name' => $product->name, 'product_price' => $product->price, 'phone' => $contact, 'address' => $address, 'payment_type' => __('messages.razorpay'), 'order_date' => Carbon::now()->format('d M Y'), ]; if (getUserSettingValue('product_order_send_mail_customer', $userId)) { Mail::to($email)->send(new ProductOrderSendCustomer($orderMailData)); } if (getUserSettingValue('product_order_send_mail_user', $userId)) { Mail::to($product->vcard->user->email)->send(new ProductOrderSendUser($orderMailData)); } $vcard = $product->vcard; App::setLocale(Session::get('languageChange_' . $vcard->url_alias)); session()->forget('productId'); DB::commit(); return redirect(route('showProducts', [$vcard->id, $vcard->url_alias, __('messages.placeholder.product_purchase')])); } catch (HttpException $ex) { print_r($ex->getMessage()); } } public function productPaymentFailed(Request $request): View { $input = $request->all(); $product = Session::get('productId'); $userId = $product->vcard->user->id; $api = new Api(getUserSettingValue('razorpay_key', $userId), getUserSettingValue('razorpay_secret', $userId)); $vcard = $product->vcard; session()->forget('productId'); Flash::error(__('messages.placeholder.payment_cancel')); return redirect(route('showProducts', [$vcard->id, $vcard->url_alias])); } } PK8\b5::%Controllers/UserPhonepeController.phpnu[ $input]); $merchantId = getUserSettingValue('phonepe_merchant_id', $userId); $merchantUserId = getUserSettingValue('phonepe_merchant_id', $userId); $baseUrl = getUserSettingValue('phonepe_env', $userId) == 'production' ? 'https://api.phonepe.com/apis/hermes' : 'https://api-preprod.phonepe.com/apis/pg-sandbox'; $saltKey = getUserSettingValue('phonepe_salt_key', $userId); $saltIndex = getUserSettingValue('phonepe_salt_index', $userId); $callbackurl = route('phonepe-appointmentbook-response'); config([ 'phonepe.merchantId' => $merchantId, 'phonepe.merchantUserId' => $merchantUserId, 'phonepe.env' => $baseUrl, 'phonepe.saltKey' => $saltKey, 'phonepe.saltIndex' => $saltIndex, 'phonepe.redirectUrl' => $redirectbackurl, 'phonepe.callBackUrl' => $callbackurl, ]); $transactionId = date('dmYhmi') . rand(111111, 999999); $data = array( 'merchantId' => $merchantId, 'merchantTransactionId' => $transactionId, 'merchantUserId' => $merchantUserId, 'amount' => $amount * 100, 'redirectUrl' => $redirectbackurl, 'redirectMode' => 'POST', 'callbackUrl' => $callbackurl, 'mobileNumber' => $phone, 'paymentInstrument' => array( 'type' => 'PAY_PAGE', ), ); $encode = base64_encode(json_encode($data)); $string = $encode . '/pg/v1/pay' . $saltKey; $sha256 = hash('sha256', $string); $finalXHeader = $sha256 . '###' . $saltIndex; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $baseUrl . '/pg/v1/pay', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode(['request' => $encode]), CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'X-VERIFY: ' . $finalXHeader ), )); $response = curl_exec($curl); curl_close($curl); $rData = json_decode($response); $url = $rData->data->instrumentResponse->redirectInfo->url; return response()->json(['link' => $url, 'status' => 200]); } public function appointmentBookSuccess(Request $request) { $input = request()->input('input'); $vcard = Vcard::with('tenant.user')->where('id', $input['vcard_id'])->first(); $userId = $vcard->tenant->user->id; $merchantId = getUserSettingValue('phonepe_merchant_id', $userId); $merchantUserId = getUserSettingValue('phonepe_merchant_id', $userId); $baseUrl = getUserSettingValue('phonepe_env', $userId) == 'production' ? 'https://api.phonepe.com/apis/hermes' : 'https://api-preprod.phonepe.com/apis/pg-sandbox'; $saltKey = getUserSettingValue('phonepe_salt_key', $userId); $saltIndex = getUserSettingValue('phonepe_salt_index', $userId); $callbackurl = route('phonepe-appointmentbook-response'); config([ 'phonepe.merchantId' => $merchantId, 'phonepe.merchantUserId' => $merchantUserId, 'phonepe.env' => $baseUrl, 'phonepe.saltKey' => $saltKey, 'phonepe.saltIndex' => $saltIndex, 'phonepe.callBackUrl' => $callbackurl, ]); $finalXHeader = hash('sha256', '/pg/v1/status/' . $request['merchantId'] . '/' . $request['transactionId'] . $saltKey) . '###' . $saltIndex; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $baseUrl . '/pg/v1/status/' . $request['merchantId'] . '/' . $request['transactionId'], CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'accept: application/json', 'X-VERIFY: ' . $finalXHeader, 'X-MERCHANT-ID: ' . $request['merchantId'] ), )); $responses = curl_exec($curl); $response = json_decode($responses); curl_close($curl); try { $transactionId = $response->data->transactionId; // Auth::loginUsingId($userId); $currencyId = Currency::whereCurrencyCode($input['currency_code'])->first()->id; $tenantId = $vcard->tenant->id; $amount = $input['amount']; $transactionDetails = [ 'vcard_id' => $vcard->id, 'transaction_id' => $transactionId, 'currency_id' => $currencyId, 'amount' => $amount, 'tenant_id' => $tenantId, 'type' => Appointment::PHONEPE, 'status' => Transaction::SUCCESS, 'meta' => json_encode($response), ]; $appointmentTran = AppointmentTransaction::create($transactionDetails); $appointmentInput = [ 'name' => $input['name'], 'email' => $input['email'], 'date' => $input['date'], 'phone' => $input['phone'], 'from_time' => $input['from_time'], 'to_time' => $input['to_time'], 'vcard_id' => $input['vcard_id'], 'appointment_tran_id' => $appointmentTran->id, 'toName' => $vcard->fullName > 1 ? $vcard->fullName : $vcard->tenant->user->fullName, 'vcard_name' => $vcard->name, ]; /** @var AppointmentRepository $appointmentRepo */ $appointmentRepo = App::make(AppointmentRepository::class); $vcardEmail = is_null($vcard->email) ? $vcard->tenant->user->email : $vcard->email; $appointmentRepo->appointmentStoreOrEmail($appointmentInput, $vcardEmail); Flash::success(__('messages.placeholder.payment_done')); App::setLocale(session::get('languageChange_' . $vcard->url_alias)); return redirect(route('vcard.show', [$vcard->url_alias, __('messages.placeholder.appointment_created')])); } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } public function productBuy($input, $product) { $amount = $product->price; $phone = $input['phone']; $userId = $product->vcard->user->id; $redirectbackurl = route('phonepe-Product-response') . '?' . http_build_query(['input' => $input]); $merchantId = getUserSettingValue('phonepe_merchant_id', $userId); $merchantUserId = getUserSettingValue('phonepe_merchant_id', $userId); $baseUrl = getUserSettingValue('phonepe_env', $userId) == 'production' ? 'https://api.phonepe.com/apis/hermes' : 'https://api-preprod.phonepe.com/apis/pg-sandbox'; $saltKey = getUserSettingValue('phonepe_salt_key', $userId); $saltIndex = getUserSettingValue('phonepe_salt_index', $userId); $callbackurl = route('phonepe-Product-response'); config([ 'phonepe.merchantId' => $merchantId, 'phonepe.merchantUserId' => $merchantUserId, 'phonepe.env' => $baseUrl, 'phonepe.saltKey' => $saltKey, 'phonepe.saltIndex' => $saltIndex, 'phonepe.redirectUrl' => $redirectbackurl, 'phonepe.callBackUrl' => $callbackurl, ]); $transactionId = date('dmYhmi') . rand(111111, 999999); $data = array( 'merchantId' => $merchantId, 'merchantTransactionId' => $transactionId, 'merchantUserId' => $merchantUserId, 'amount' => $amount * 100, 'redirectUrl' => $redirectbackurl, 'redirectMode' => 'POST', 'callbackUrl' => $callbackurl, 'mobileNumber' => $phone, 'paymentInstrument' => array( 'type' => 'PAY_PAGE', ), ); $encode = base64_encode(json_encode($data)); $string = $encode . '/pg/v1/pay' . $saltKey; $sha256 = hash('sha256', $string); $finalXHeader = $sha256 . '###' . $saltIndex; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $baseUrl . '/pg/v1/pay', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode(['request' => $encode]), CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'X-VERIFY: ' . $finalXHeader ), )); $response = curl_exec($curl); curl_close($curl); $rData = json_decode($response); $url = $rData->data->instrumentResponse->redirectInfo->url; return response()->json(['link' => $url, 'status' => 200]); } public function productBuySuccess(Request $request) { $input = request()->input('input'); $product = Product::whereId($input['product_id'])->first(); $currencyId = isset($product->currency) ? $product->currency->id : Currency::whereId(getUserSettingValue('currency_id', $product->vcard->user->id))->first()->id; $userId = $product->vcard->user->id; $merchantId = getUserSettingValue('phonepe_merchant_id', $userId); $merchantUserId = getUserSettingValue('phonepe_merchant_id', $userId); $baseUrl = getUserSettingValue('phonepe_env', $userId) == 'production' ? 'https://api.phonepe.com/apis/hermes' : 'https://api-preprod.phonepe.com/apis/pg-sandbox'; $saltKey = getUserSettingValue('phonepe_salt_key', $userId); $saltIndex = getUserSettingValue('phonepe_salt_index', $userId); $callbackurl = route('phonepe-Product-response'); config([ 'phonepe.merchantId' => $merchantId, 'phonepe.merchantUserId' => $merchantUserId, 'phonepe.env' => $baseUrl, 'phonepe.saltKey' => $saltKey, 'phonepe.saltIndex' => $saltIndex, 'phonepe.callBackUrl' => $callbackurl, ]); $finalXHeader = hash('sha256', '/pg/v1/status/' . $request['merchantId'] . '/' . $request['transactionId'] . $saltKey) . '###' . $saltIndex; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $baseUrl . '/pg/v1/status/' . $request['merchantId'] . '/' . $request['transactionId'], CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'accept: application/json', 'X-VERIFY: ' . $finalXHeader, 'X-MERCHANT-ID: ' . $request['merchantId'] ), )); $responses = curl_exec($curl); $response = json_decode($responses); curl_close($curl); try { $transactionId = $response->data->transactionId; $amount = $response->data->amount / 100; DB::beginTransaction(); ProductTransaction::create([ 'product_id' => $input['product_id'], 'name' => $input['name'], 'email' => $input['email'], 'phone' => $input['phone'], 'address' => $input['address'], 'currency_id' => $currencyId, 'meta' => json_encode($response), 'type' => $input['payment_method'], 'transaction_id' => $transactionId, 'amount' => $amount, ]); $orderMailData = [ 'user_name' => $product->vcard->user->full_name, 'customer_name' => $input['name'], 'product_name' => $product->name, 'product_price' => $product->price, 'phone' => $input['phone'], 'address' => $input['address'], 'payment_type' => __('messages.phonepe'), 'order_date' => Carbon::now()->format('d M Y'), ]; if (getUserSettingValue('product_order_send_mail_customer', $userId)) { Mail::to($input['email'])->send(new ProductOrderSendCustomer($orderMailData)); } if (getUserSettingValue('product_order_send_mail_user', $userId)) { Mail::to($product->vcard->user->email)->send(new ProductOrderSendUser($orderMailData)); } $vcard = $product->vcard; App::setLocale(Session::get('languageChange_' . $vcard->url_alias)); session()->forget('input'); DB::commit(); return redirect(route('showProducts', [$vcard->id, $vcard->url_alias, __('messages.placeholder.product_purchase')])); } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } } PK8\3II$Controllers/SocialAuthController.phpnu[redirect(); } /** * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function handleSocialCallback($provider): \Illuminate\Http\RedirectResponse { if (Auth::check()) { return redirect('/'); } $socialUser = Socialite::driver($provider)->user(); if (empty($socialUser['email'])) { Flash::error(__('messages.placeholder.we_could_not_fb_id')); return redirect(route('register')); } try { DB::beginTransaction(); /** @var User $user */ $user = User::whereRaw('lower(email) = ?', strtolower($socialUser['email']))->first(); $existingAccount = null; if (! empty($user)) { /** @var SocialAccount $existingProfile */ $existingAccount = SocialAccount::where('provider_id', $socialUser->id)->first(); } else { $username = explode(' ', $socialUser['name']); $userData['first_name'] = $username[0]; $userData['last_name'] = $username[1]; $userData['email'] = $socialUser['email']; $userData['email_verified_at'] = Carbon::now(); $userData['password'] = bcrypt(Str::random(40)); $userData['affiliate_code'] = generateUniqueAffiliateCode(); $tenant = MultiTenant::create(['tenant_username' => $userData['first_name']]); $userData['tenant_id'] = $tenant->id; /** @var User $user */ $user = User::create($userData)->assignRole(Role::ROLE_ADMIN); $plan = Plan::whereIsDefault(true)->first(); $subscription = new Subscription(); $subscription->plan_id = $plan->id; $subscription->starts_at = Carbon::now(); $subscription->ends_at = Carbon::now()->addDays($plan->trial_days); $subscription->plan_amount = $plan->price; $subscription->plan_frequency = $plan->frequency; $subscription->trial_ends_at = Carbon::now()->addDays($plan->trial_days); $subscription->no_of_vcards = $plan->no_of_vcards; $subscription->tenant_id = $user['tenant_id']; $subscription->status = Subscription::ACTIVE; $subscription->saveQuietly(); } if (empty($existingAccount)) { $existingAccount = SocialAccount::where('provider_id', $socialUser->id)->first(); if (empty($existingAccount)) { $socialAccount = new SocialAccount(); $socialAccount->tenant_id = $user->tenant_id; $socialAccount->provider = $provider; $socialAccount->provider_id = $socialUser->id; $socialAccount->save(); } } DB::commit(); Auth::login($user); return redirect(route('admin.dashboard')); } catch (Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } } PK8\DDControllers/StateController.phpnu[stateRepository = $stateRepository; } public function index(): View { return view('sadmin.states.index'); } public function store(CreateStateRequest $request): JsonResponse { $input = $request->all(); $state = $this->stateRepository->create($input); return $this->sendResponse($state, __('messages.flash.state_create')); } public function edit(State $state): JsonResponse { return $this->sendResponse($state, 'State successfully retrieved.'); } public function update(UpdateStateRequest $request, State $state): JsonResponse { $input = $request->all(); $this->stateRepository->update($input, $state->id); return $this->sendSuccess(__('messages.flash.state_update')); } public function destroy(State $state): JsonResponse { $cities = City::where('state_id', $state->id)->count(); if ($cities > 0) { return $this->sendError(__('messages.flash.state_used')); } $state->delete(); return $this->sendSuccess('State deleted successfully.'); } } PK8\G"Controllers/SendMailController.phpnu[toArray(); $newEmail = $emails; return view('sadmin.send_mail.index',compact('newEmail')); } public function store(SendMailRequest $request) { ini_set('max_execution_time', 1200); $input = $request->all(); $enquiries = EmailSubscription::all(); $sendEmailData = [ 'subject' => $input['subject'], 'description' => $input['description'], ]; $sendEmail = SendEmail::create($sendEmailData); if (isset($input['custom_email'])) { foreach ($input['custom_email'] as $enquiries) { $data = [ 'subject' => $input['subject'], 'description' => $input['description'], 'email' => $enquiries, ]; Mail::to($enquiries)->send(new MailSendEmail($data)); } } Flash::success(__('messages.send_mail.mail_send_successfully')); return redirect()->back(); } } PK8\0#0#Controllers/UserController.phpnu[userRepo = $userRepository; } /** * @return Application|Factory|View */ public function index(): \Illuminate\View\View { return view('users.index'); } /** * @return Application|Factory|View */ public function create(): \Illuminate\View\View { return view('users.create'); } /** * @return Application|RedirectResponse|Redirector */ public function store(CreateUserRequest $request): RedirectResponse { $input = $request->all(); $this->userRepo->store($input); Flash::success(__('messages.flash.user_create')); return redirect(route('users.index')); } /** * @return Application|Factory|View */ public function show(Request $request, User $user): \Illuminate\View\View { if (! empty($user) && $user->getRoleNames()[0] == 'admin') { return view('users.show', compact('user')); } abort(404); } /** * @return Application|Factory|View */ public function edit(User $user): \Illuminate\View\View { $subscription = Subscription::with(['plan']) ->whereTenantId($user->tenant_id) ->where('status', Subscription::ACTIVE)->latest()->first(); return view('users.edit', compact('user', 'subscription')); } public function emailVerified(User $user): JsonResponse { DB::table('users')->where('id', $user->id)->update(['email_verified_at' => Carbon::now()]); // $affiliateUser = AffiliateUser::withoutGlobalScope('verifiedUser') // ->whereIsVerified(false) // ->whereUserId($user->id) // ->first(); // // if ($affiliateUser) { // // $affiliateUser->update(['is_verified' => true]); // // } return $this->sendSuccess(__('messages.flash.verified_email')); } public function updateStatus(User $user): JsonResponse { $user->update([ 'is_active' => ! $user->is_active, ]); return $this->sendSuccess(__('messages.flash.user_status')); } /** * @return Application|RedirectResponse|Redirector */ public function update(UpdateUserRequest $request, User $user): RedirectResponse { $this->userRepo->update($request->all(), $user); Flash::success(__('messages.flash.user_update')); return redirect(route('users.index')); } public function destroy(User $user): JsonResponse { if ($user->getRoleNames()[0] == 'admin') { $affiliateUsers = AffiliateUser::whereUserId($user->id)->orWhere('affiliated_by', $user->id)->get(); $withdrawals = Withdrawal::whereUserId($user->id)->get(); foreach ($withdrawals as $withdrawal) { $withdrawalTransactions = WithdrawalTransaction::where('withdrawal_id', $withdrawal->id)->get(); foreach ($withdrawalTransactions as $transaction) { $transaction->delete(); } $withdrawal->delete(); } foreach ($affiliateUsers as $affiliateUser) { $affiliateUser->delete(); } NfcOrderTransaction::where('user_id', $user->id)->delete(); NfcOrders::where('user_id', $user->id)->delete(); Vcard::where('tenant_id', $user->tenant_id)->delete(); MultiTenant::where('id', $user->tenant_id)->delete(); $user->delete(); return $this->sendSuccess('User deleted successfully.'); } return $this->sendError('Seems, you are not allowed to access this record.'); } /** * @return Application|RedirectResponse|Redirector */ public function impersonate(User $user): RedirectResponse { getLogInUser()->impersonate($user); return redirect(route('admin.dashboard')); } /** * @return Application|RedirectResponse|Redirector */ public function impersonateLeave(): RedirectResponse { getLogInUser()->leaveImpersonation(); return redirect(route('users.index')); } /** * @return Application|Factory|View */ public function editProfile(): \Illuminate\View\View { $user = Auth::user(); return view('profile.index', compact('user')); } public function updateProfile(UpdateUserProfileRequest $request): RedirectResponse { $this->userRepo->updateProfile($request->all()); $verifiedUser = EmailVerification::where('user_id', getLogInUserId())->first(); if ($verifiedUser) { Flash::success(__('messages.placeholder.email_verification')); } else { Flash::success(__('messages.flash.user_profile')); } return redirect(route('profile.setting')); } public function changePassword(UpdateChangePasswordRequest $request): JsonResponse { $input = $request->all(); try { /** @var User $user */ $user = Auth::user(); if (! Hash::check($input['current_password'], $user->password)) { return $this->sendError(__('messages.flash.current_invalid')); } $input['password'] = Hash::make($input['new_password']); $user->update($input); return $this->sendSuccess(__('messages.flash.password_update')); } catch (Exception $e) { throw new UnprocessableEntityHttpException($e->getMessage()); } } public function changeUserPassword(UpdateUserPasswordRequest $request, User $user): JsonResponse { $input = $request->all(); try { $input['password'] = Hash::make($input['new_password']); $this->userRepo->update($input, $user); $data = [ 'name' => $user->full_name, 'toName' => getLogInUser()->full_name, ]; Mail::to($user->email) ->send(new ChangePasswordMail('emails.change_password_mail', __('messages.flash.password_update'), $data)); return $this->sendSuccess(__('messages.flash.password_update')); } catch (Exception $e) { throw new UnprocessableEntityHttpException($e->getMessage()); } } public function changeLanguage(Request $request): JsonResponse { $input = $request->all(); $user = Auth::user(); if ($user !== null) { $user->update($input); } return $this->sendSuccess(__('messages.flash.language_update')); } public function changeMode(): RedirectResponse { $user = Auth::user(); if ($user !== null) { $user->update([ 'theme_mode' => ! $user->theme_mode, ]); } return redirect()->back(); } public function userDelete(User $user) { $result = $this->userRepo->userDataDelete($user); if ($result) { return Redirect::route('home'); } return $this->sendError('Seems, you are not allowed to access this record.'); } public function updateSteps($steps) { $user = getLogInUser(); $user->steps = $steps; $user->update(); return response()->json(['message' => 'Steps updated successfully']); } } PK8\A"Controllers/CurrencyController.phpnu[validate([ 'file' => 'required|file|mimes:zip' ]); $file = $request->file('file'); $filePathInfo = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME); $extractionPath = base_path('Modules/'); $moduleFolder = $extractionPath . $filePathInfo; if (is_dir($moduleFolder)) { return $this->sendError(__('messages.addon.module_folder_already_exists')); } $isExistFiles = [ $filePathInfo . '/' . 'composer.json', $filePathInfo . '/' . 'Providers/RouteServiceProvider.php' ]; $zip = new ZipArchive; if ($zip->open($file) === TRUE) { $fileNames = []; for ($i = 0; $i < $zip->numFiles; $i++) { $fileNames[] = $zip->getNameIndex($i); } $checkFiles = []; foreach ($isExistFiles as $isExistFile) { if (!in_array($isExistFile, $fileNames)) { $checkFiles[] = $isExistFile; } } $zip->close(); if (!empty($checkFiles)) { return $this->sendError(__('messages.addon.zip_required_file')); } if ($zip->open($file) === TRUE) { $zip->extractTo($extractionPath); $zip->close(); $addOn = AddOn::updateOrCreate([ 'name' => $filePathInfo, ]); $content = file_get_contents(base_path("modules_statuses.json")); $content = json_decode($content, true); $content[$filePathInfo] = true; file_put_contents(base_path("modules_statuses.json"), json_encode($content)); } else { return $this->sendError(__('messages.addon.failed_to_extraction')); } \Artisan::call('module:migrate', ['--force' => true]); return $this->sendSuccess(__('messages.addon.addon_uploaded_successfully')); } else { return $this->sendError(__('messages.addon.failed_to_open')); } } public function update($id) { $addOnModule = AddOn::find($id); if (!$addOnModule) { return $this->sendError(__('messages.addon.module_not_found')); } $addOnModule->status = !$addOnModule->status; $addOnModule->save(); return $this->sendSuccess('Module status Updated successfully'); } } PK8\ċ,,%Controllers/MailSettingController.phpnu[all(); $mailSetting = MailSetting::first(); if ($mailSetting) { $mailSetting->update($input); } else { MailSetting::create($input); } $envFilePath = base_path('.env'); $envFileContent = file_get_contents($envFilePath); $envFileContent = preg_replace('/^MAIL_MAILER=.*/m', 'MAIL_MAILER=' . strtolower(MailSetting::TYPE[$request->mail_protocol]), $envFileContent); $envFileContent = preg_replace('/^MAIL_HOST=.*/m', "MAIL_HOST={$request['mail_host']}", $envFileContent); $envFileContent = preg_replace('/^MAIL_PORT=.*/m', "MAIL_PORT={$request['mail_port']}", $envFileContent); $envFileContent = preg_replace('/^MAIL_USERNAME=.*/m', "MAIL_USERNAME={$request['mail_username']}", $envFileContent); $envFileContent = preg_replace('/^MAIL_PASSWORD=.*/m', "MAIL_PASSWORD={$request['mail_password']}", $envFileContent); $envFileContent = preg_replace('/^MAIL_ENCRYPTION=.*/m', 'MAIL_ENCRYPTION=' . strtolower(MailSetting::ENCRYPTION_TYPE[$request->mail_encryption]), $envFileContent); $envFileContent = preg_replace('/^MAIL_FROM_ADDRESS=.*/m', "MAIL_FROM_ADDRESS={$request['sender_email_address']}", $envFileContent); file_put_contents($envFilePath, $envFileContent); Flash::success(__('messages.vcard.mail_settings') . ' ' . __('messages.flash.vcard_update')); return Redirect::back(); } } PK8\yN=N=&Controllers/SubscriptionController.phpnu[subscriptionRepo = $subscriptionRepo; } /** * @return Application|Factory|View */ public function index(Request $request): \Illuminate\View\View { $currentPlan = getCurrentSubscription(); $days = $remainingDay = ''; if ($currentPlan->ends_at > Carbon::now()) { $days = Carbon::parse($currentPlan->ends_at)->diffInDays(); $remainingDay = $days . ' Days'; } if ($days >= 30 && $days <= 365) { $remainingDay = ''; $months = floor($days / 30); $extraDays = $days % 30; if ($extraDays > 0) { $remainingDay .= $months . ' Month ' . $extraDays . ' Days'; } else { $remainingDay .= $months . ' Month '; } } if ($days >= 365) { $remainingDay = ''; $years = floor($days / 365); $extraMonths = floor($days % 365 / 30); $extraDays = floor($days % 365 % 30); if ($extraMonths > 0 && $extraDays < 1) { $remainingDay .= $years . ' Years ' . $extraMonths . ' Month '; } elseif ($extraDays > 0 && $extraMonths < 1) { $remainingDay .= $years . ' Years ' . $extraDays . ' Days'; } elseif ($years > 0 && $extraDays > 0 && $extraMonths > 0) { $remainingDay .= $years . ' Years ' . $extraMonths . ' Month ' . $extraDays . ' Days'; } else { $remainingDay .= $years . ' Years '; } } return view('subscription.index', compact('currentPlan', 'remainingDay')); } public function choosePaymentType($planId, $context = null, $fromScreen = null) { $currentSubscription = getCurrentSubscription(); $customSelectId = request()->get('customFieldId'); $customField = PlanCustomField::find($customSelectId); if ($customField) { if (!$currentSubscription->isExpired()) { if ((checkIfPlanIsInTrial($currentSubscription) || !checkIfPlanIsInTrial($currentSubscription)) && $customField->custom_vcard_price <= 0) { Flash::error(__('messages.placeholder.cannot_switch_to_zero')); return Redirect::back(); } } } $cashPaymentPlan = Subscription::where('tenant_id', Auth::user()->tenant_id)->where('payment_type', 'cash')->where('status', Subscription::PENDING)->first(); if ($cashPaymentPlan) { Flash::error(__('messages.wait_for_apporove_of_cash_payment_by_admin')); return Redirect::back(); } // code for checking the current plan is active or not, if active then it should not allow to choose that plan $subscriptionsPricingPlan = Plan::with('currency')->findOrFail($planId); if ($subscriptionsPricingPlan->currency && $subscriptionsPricingPlan->currency->currency_code === 'BRL') { return redirect()->route('asaas.checkout.show', $planId); } $paymentTypes = getPaymentGateway(); return view('subscription.payment_for_plan', compact('subscriptionsPricingPlan', 'paymentTypes', 'customSelectId', 'customField')); } /** * @return Application|Factory|View */ public function upgrade() { $cashPaymentPlan = Subscription::where('tenant_id', Auth::user()->tenant_id)->where('payment_type', 'cash')->where('status', Subscription::PENDING)->first(); if ($cashPaymentPlan && !$cashPaymentPlan->isExpired()) { Flash::error(__('messages.wait_for_apporove_of_cash_payment_by_admin')); return Redirect::back(); } $plans = Plan::with(['currency', 'planFeature'])->whereStatus(Plan::IS_ACTIVE)->whereIsDefault(Plan::IS_DEACTIVE)->get(); $monthlyPlans = $plans->where('frequency', Plan::MONTHLY); $yearlyPlans = $plans->where('frequency', Plan::YEARLY); $unLimitedPlans = $plans->where('frequency', Plan::UNLIMITED); return view( 'subscription.upgrade', compact('monthlyPlans', 'yearlyPlans', 'unLimitedPlans') ); } public function setPlanZero(Plan $plan): JsonResponse { try { DB::beginTransaction(); Subscription::whereTenantId(getLogInTenantId()) ->whereIsActive(true)->update(['is_active' => false]); $expiryDate = setExpiryDate($plan); Subscription::create([ 'plan_id' => $plan->id, 'ends_at' => $expiryDate, 'status' => true, ]); DB::commit(); return $this->sendSuccess(__('messages.placeholder.subscribed_plan')); } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } public function manualPay(Request $request) { $input = $request->all(); if (isset($input['couponCodeId'])) { $couponId = $input['couponCodeId']; $coupon = CouponCode::find($couponId); if ($coupon) { if ($coupon->coupon_limit != null) { $newLimit = $coupon->coupon_limit_left - 1; CouponCode::where('id', $couponId)->update(['coupon_limit_left' => $newLimit]); } } } if (isset($input['attachment']) && $input['attachment']->getClientMimeType() == 'text/php') { return $this->sendError('PHP file is not valid type for attachment'); } $this->subscriptionRepo->manageSubscription($input); $data = Subscription::whereTenantId(getLogInTenantId())->orderBy('created_at', 'desc')->first(); Subscription::whereId($data->id)->update(['payment_type' => 'Cash', 'status' => Subscription::PENDING]); $is_on = Setting::where('key', 'is_manual_payment_guide_on')->first(); $manual_payment_guide_step = Setting::where('key', 'manual_payment_guide')->first(); $user = \Illuminate\Support\Facades\Auth::user(); $super_admin_data = [ 'super_admin_msg' => $user->full_name . ' created request for payment of ' . $data->plan->currency->currency_icon . '' . $data->payable_amount, 'attachment' => $data->attachment ?? '', 'notes' => $data->notes ?? '', 'id' => $data->id, ]; if ($is_on['value'] == '1') { Mail::to($user['email']) ->send(new ManualPaymentGuideMail($manual_payment_guide_step['value'], $user)); $email = getSuperAdminSettingValue('email'); Mail::to($email) ->send(new SuperAdminManualPaymentMail($super_admin_data, $email)); } return $this->sendSuccess(__('messages.placeholder.subscribed_plan_wait')); } public function downloadAttachment($id): \Illuminate\Http\Response|Application|\Illuminate\Contracts\Routing\ResponseFactory { $subscription = Subscription::findOrFail($id); [$file, $headers] = $this->subscriptionRepo->downloadAttachment($subscription); return response($file, 200, $headers); } public function downloadMailAttachment($id): BinaryFileResponse { $subscription = Subscription::whereTenantId(getLogInTenantId())->findOrFail($id); $headers = [ 'Content-Type' => $subscription->media[0]->mime_type, 'Content-Description' => 'File Transfer', 'Content-Disposition' => "attachment; filename={$subscription->media[0]->file_name}", 'filename' => $subscription->media[0]->file_name, ]; return response()->download($subscription->media[0]->getPath(), $subscription->media[0]->file_name, $headers); } /** * @return Application|Factory|View */ public function cashPlan(): \Illuminate\View\View { return view('sadmin.planPyment.index'); } public function planStatus(Request $request): JsonResponse { if ($request->status == Subscription::ACTIVE) { $user = User::whereTenantId($request->tenant_id)->latest()->first(); if ($user) { // send mail notification $subscription = Subscription::findOrFail($request->id); $planName = $subscription->plan->name; $paymentAmount = $subscription->payable_amount; $userEmail = $user->email; $planName = $subscription->plan->name; $firstName = $user->first_name; $lastName = $user->last_name; $emailData = [ 'subscriptionId' => $request->id, 'subscriptionAmount' => $paymentAmount, 'transactionID' => $request->session_id, 'planName' => $planName, 'first_name' => $firstName, 'last_name' => $lastName, ]; Mail::to($userEmail)->send(new SubscriptionPaymentSuccessMail($emailData)); $affiliateAmount = getSuperAdminSettingValue('affiliation_amount'); $affiliateAmountType = getSuperAdminSettingValue('affiliation_amount_type'); if ($affiliateAmountType == 1) { AffiliateUser::where('user_id', $user->id)->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $affiliateAmount, 'is_verified' => 1]); } else if ($affiliateAmountType == 2) { $amount = $paymentAmount * $affiliateAmount / 100; AffiliateUser::where('user_id', $user->id)->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $amount, 'is_verified' => 1]); } } Subscription::whereTenantId($request->tenant_id)->where('id', '!=', $request->id)->where('status', '!=', Subscription::REJECT)->update(['status' => Subscription::INACTIVE]); } Subscription::where('id', $request->id)->update([ 'status' => $request->status, ]); $user = User::whereTenantId($request->tenant_id)->first(); manageVcards($user); return $this->sendSuccess(__('messages.placeholder.payment_received')); } public function purchaseSubscription(Request $request) { $input = $request->all(); $result = $this->subscriptionRepo->purchaseSubscriptionForStripe($input); // returning from here if the plan is free. if (isset($result['status']) && $result['status'] == true) { manageVcards(); return $this->sendSuccess($result['subscriptionPlan']->name . ' ' . __('messages.subscription.has_been_subscribed')); } else { if (isset($result['status']) && $result['status'] == false) { return $this->sendError(__('messages.placeholder.cannot_switch_to_zero')); } } return $this->sendResponse($result, 'Session created successfully.'); } /** * @return Application|Factory|View * * @throws ApiErrorException */ public function paymentSuccess(Request $request): \Illuminate\View\View { AffiliateUser::whereUserId(getLogInUserId())->withoutGlobalScopes() ->update(['is_verified' => 1]); /** @var SubscriptionRepository $subscriptionRepo */ $subscriptionRepo = app(SubscriptionRepository::class); $subscription = $subscriptionRepo->paymentUpdate($request); manageVcards(); Flash::success($subscription->plan->name . ' ' . __('messages.subscription.has_been_subscribed')); return view('sadmin.plans.payment.paymentSuccess'); } public function handleFailedPayment(): \Illuminate\View\View { $subscriptionPlanId = session('subscription_plan_id'); /** @var SubscriptionRepository $subscriptionRepo */ $subscriptionRepo = app(SubscriptionRepository::class); $subscriptionRepo->paymentFailed($subscriptionPlanId); Flash::error(__('messages.placeholder.unable_to_process_payment')); return view('sadmin.plans.payment.paymentcancel'); } /** * @return Application|Factory|View */ public function userSubscribedPlan(): \Illuminate\View\View { return view('sadmin.subscriptionPlan.index'); } public function userSubscribedPlanEdit(Request $request): JsonResponse { $subscription = Subscription::with([ 'plan:id,name,currency_id', 'tenant.user', 'plan.currency', ])->whereId($request->id)->first(); $paymentTypeName = Subscription::PAYMENT_GATEWAY[$subscription->payment_type] ?? ''; return $this->sendResponse($subscription, $paymentTypeName, 'Subscription successfully retrieved.'); } public function userSubscribedPlanUpdate(Request $request): JsonResponse { $endDate = $request->end_date; if (empty($request->end_date)) { return $this->sendError(__('messages.subscription.end_date_required')); } $endDate = $request->end_date; $format = getSuperAdminSettingValue('datetime_method'); $formattedDate = ($format == 1) ? Carbon::createFromFormat('d M, Y', $endDate)->format('Y-m-d H:i:s') : (($format == 2) ? Carbon::createFromFormat('M d, Y', $endDate)->format('Y-m-d H:i:s') : (($format == 3) ? Carbon::createFromFormat('d/m/Y', $endDate)->format('Y-m-d H:i:s') : (($format == 4) ? Carbon::createFromFormat('Y/m/d', $endDate)->format('Y-m-d H:i:s') : (($format == 5) ? Carbon::createFromFormat('m/d/Y', $endDate)->format('Y-m-d H:i:s') : (($format == 6) ? Carbon::createFromFormat('Y-m-d', $endDate)->format('Y-m-d H:i:s') : Carbon::parse($endDate)->format('Y-m-d H:i:s') ) ) ) ) ); $subscription = Subscription::where('id', $request->id)->update([ 'ends_at' => $formattedDate, 'status' => Subscription::ACTIVE, ]); return $this->sendResponse($subscription, __('messages.placeholder.subscription_date_updated')); } } PK8\L"Controllers/HomeController.php.baknu[where('language', $language)->get(); $faqs = FrontFAQs::where('language', $language)->first(); $metas = Meta::first(); if (! empty($metas)) { $metas = $metas->toArray(); } $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $aboutUS = AboutUs::with('media')->where('language', $language)->get()->toArray(); $features = Feature::where('language', $language)->get(); $plans = Plan::with(['currency', 'planFeature', 'hasZeroPlan', 'planCustomFields'])->whereIsDefault(Plan::IS_DEACTIVE)->whereStatus(Plan::IS_ACTIVE)->get(); $homePage = getSuperAdminSettingValue('home_page_theme') == 1 ? 'home' : 'home1'; $view = getSuperAdminSettingValue('is_front_page') ? view("front.home.$homePage", compact('plans', 'setting', 'features', 'testimonials', 'aboutUS', 'metas', 'faqs')) : redirect(route('login')); return $view; } public function store(CreateContactRequest $request) { $input = $request->all(); $user = getSuperAdminEmail(); ContactUs::create($input); Mail::to($user) ->send(new LandingContactUsMail( $input, __('messages.placeholder.message_sent') )); return $this->sendSuccess(__('messages.placeholder.message_sent')); } /** * @return Application|Factory|View */ public function showContactUs(): \Illuminate\View\View { return view('sadmin.contactus.index'); } public function destroyContactUs(ContactUs $enquiry): JsonResponse { $enquiry->delete(); return $this->sendSuccess(__('messages.flash.enquiry_delete')); } public function themeConfiguration(): \Illuminate\View\View { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key'); $view = view('settings.theme_config.index', compact('setting')); return $view; } public function changeLanguage(Request $request): RedirectResponse { Session::put('languageName', $request->input('languageName')); return redirect()->back(); } public function banner(Request $request): \Illuminate\View\View { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key'); return view('sadmin.supportBanner.index', compact('setting')); } public function appDownload(Request $request): \Illuminate\View\View { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key'); return view('sadmin.supportMobile.index', compact('setting')); } /** * @return Application|Factory|View|RedirectResponse|Redirector */ public function termCondition() { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $faqs = FrontFAQs::where('language', $language)->first(); $view = view('front.terms_conditions', compact('setting', 'faqs')); return $view; } /** * @return Application|Factory|View */ public function privacyPolicy(): \Illuminate\View\View { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $faqs = FrontFAQs::where('language', $language)->first(); return view('front.privacy_policy', compact('setting', 'faqs')); } public function declineCookie() { session(['declined' => 1]); } public function vcardTemplates() { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $faqs = FrontFAQs::where('language', $language)->first(); return view('front.home.vcards-templates', compact('setting', 'faqs')); } public function forntFaq() { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $blogs = Blog::where('status', '1')->get(); $faq = FrontFAQs::where('language', $language)->get(); $faqs = FrontFAQs::where('language', $language)->first(); if (getSuperAdminSettingValue('home_page_theme') == 2) { return view('front.home.home-faq1', compact('setting', 'faq', 'faqs', 'blogs')); } else { return view('front.home.home-faq', compact('setting', 'faq', 'faqs', 'blogs')); } } public function ForntBlog() { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $blogs = Blog::where('status', '1')->get(); $faqs = FrontFAQs::where('language', $language)->first(); if (getSuperAdminSettingValue('home_page_theme') == 2) { return view('front.home.home-blog1', compact('blogs', 'faqs', 'setting')); } else { return view('front.home.home-blog', compact('blogs', 'faqs', 'setting')); } } public function ForntBlogShow($slug) { $language = checkFrontLanguageSession(); $setting = Setting::where('language', $language)->orWhere('language', '')->pluck('value', 'key')->toArray(); $faqs = FrontFAQs::where('language', $language)->first(); $blog = Blog::where('slug', $slug)->first(); if (!$blog->status) { abort(404); } if (getSuperAdminSettingValue('home_page_theme') == 2) { return view('front.home.home-blog-show1', compact('blog', 'faqs', 'setting')); } else { return view('front.home.home-blog-show', compact('blog', 'faqs', 'setting')); } } } PK8\JControllers/CityController.phpnu[cityRepository = $cityRepository; } /** * @return Application|Factory|View */ public function index(): \Illuminate\View\View { return view('sadmin.cities.index'); } public function store(CreateCityRequest $request): JsonResponse { $input = $request->all(); $state = $this->cityRepository->create($input); return $this->sendResponse($state, __('messages.flash.city_create')); } public function edit(City $city): JsonResponse { return $this->sendResponse($city, 'City successfully retrieved.'); } public function update(UpdateCityRequest $request, City $city): JsonResponse { $input = $request->all(); $this->cityRepository->update($input, $city->id); return $this->sendSuccess(__('messages.flash.city_update')); } public function destroy(City $city): JsonResponse { $city->delete(); return $this->sendSuccess('City deleted successfully.'); } } PK8\ %Controllers/UserSettingController.phpnu[userSettingRepository = $userSettingRepository; } /** * @return Application|Factory|View */ public function index(Request $request): \Illuminate\View\View { $sectionName = ($request->get('section') === null) ? 'general' : $request->get('section'); $setting = UserSetting::where('user_id', getLogInUserId())->pluck('value', 'key')->toArray(); return view("user-settings.$sectionName",compact('setting', 'sectionName')); } public function update(UpdateUserSettingRequest $request): RedirectResponse { $id = Auth::id(); if(isset($request->time_format)){ $setting = UserSetting::where('user_id', getLogInUserId())->where('key', 'time_format')->first(); } $userVcards = Vcard::where('tenant_id', getLogInTenantId())->pluck('id')->toArray(); $bookedAppointment = ScheduleAppointment::whereIn('vcard_id', $userVcards)->where('status', ScheduleAppointment::PENDING)->count(); if (! empty($setting) && $bookedAppointment > 0 && $setting->value != $request->time_format) { Flash::error(__('messages.flash.can_not_change_time_format')); return Redirect::back(); } $this->userSettingRepository->update($request->all(), $id); Flash::success(__('messages.flash.setting_update')); return Redirect::back(); } public function paymentMethodUpdate(Request $request){ $id = Auth::id(); $this->userSettingRepository->paymentMethodUpdate($request->all(), $id); Flash::success(__('messages.flash.setting_update')); return Redirect::back(); } } PK8\NA  $Controllers/CustomLinkController.phpnu[customLinkRepo = $customLinkRepo; } /** * Display a listing of the resource. */ public function index() { // } /** * Show the form for creating a new resource. */ public function create() { // } /** * Store a newly created resource in storage. */ public function store(CreateCustomLinkRequest $request) { $input = $request->all(); $customLink = $this->customLinkRepo->store($input ); return $this->sendResponse($customLink, __('messages.flash.custom_link_created')); } /** * Display the specified resource. */ public function show(CustomLink $customLink) { // } /** * Show the form for editing the specified resource. */ public function edit(CustomLink $customLink) { return $this->sendResponse($customLink, 'Custom Link successfully retrieved.'); } /** * Update the specified resource in storage. */ public function update(UpdateCustomLinkRequest $request,$id) { $input = $request->all(); $customLink = $this->customLinkRepo->update($input, $id); return $this->sendResponse($customLink, __('messages.flash.custom_link_updated')); } /** * Remove the specified resource from storage. */ public function destroy(CustomLink $customLink) { $customLink->delete(); return $this->sendSuccess(__('messages.flash.custom_link_deleted')); } public function updateShowAsButton(CustomLink $customLink) { $customLink->update([ 'show_as_button' => ! $customLink->show_as_button, ]); return $this->sendSuccess(__('messages.flash.show_as_button')); } public function updateOpenNewTab(CustomLink $customLink) { $customLink->update([ 'open_new_tab' => ! $customLink->open_new_tab, ]); return $this->sendSuccess(__('messages.flash.open_new_tab')); } } PK8\6!Controllers/CountryController.phpnu[countryRepository = $countryRepository; } public function index(): View { return view('sadmin.countries.index'); } public function store(CreateCountryRequest $request): JsonResponse { $input = $request->all(); $input['short_code'] = strtoupper($input['short_code']); $country = $this->countryRepository->create($input); return $this->sendResponse($country, __('messages.flash.country_create')); } public function edit(Country $country): JsonResponse { return $this->sendResponse($country, 'Country successfully retrieved.'); } public function update(UpdateCountryRequest $request, Country $country): JsonResponse { $input = $request->all(); $input['short_code'] = strtoupper($input['short_code']); $this->countryRepository->update($input, $country->id); return $this->sendSuccess(__('messages.flash.country_update')); } public function destroy(Country $country): JsonResponse { $states = State::whereCountryId($country->id)->count(); if ($states > 0) { return $this->sendError(__('messages.flash.country_used')); } $country->delete(); return $this->sendSuccess('Country deleted successfully.'); } } PK8\뤶$Controllers/OnboardingController.phpnuIwhas('social_url') && !$request->has('sources')) { $request->merge(['sources' => [$request->input('social_url')]]); } $request->validate([ 'sources' => ['required', 'array', 'min:1', 'max:5'], 'sources.*' => ['required', 'url', 'max:500', 'distinct'], ], [ 'sources.required' => 'Fornea pelo menos uma URL de rede social ou site.', 'sources.max' => 'Pode fornecer no mximo 5 fontes.', 'sources.*.url' => 'Uma das URLs fornecidas no vlida.', 'sources.*.distinct' => 'No repita URLs.', ]); $user = Auth::user(); $sources = array_filter($request->sources, fn($s) => !empty(trim($s))); // Determine primary URL for backward compatibility $primaryUrl = $sources[0] ?? ''; // Create VCard skeleton $vcard = Vcard::create([ 'user_id' => $user->id, 'tenant_id' => $user->tenant_id ?? null, 'name' => $user->name, 'url_alias' => 'card-' . uniqid(), 'status' => 'pending_payment', 'ai_status' => 'pending', 'ai_social_url' => json_encode(array_values($sources), JSON_UNESCAPED_SLASHES), 'payment_deadline' => now()->addHours(24), 'template_id' => 1, ]); Log::info("[Onboarding] VCard#{$vcard->id} created. Sources: " . implode(', ', $sources)); // Dispatch AI job with full sources array GenerateAiCardJob::dispatch($user, $sources, $vcard->id) ->onQueue('ai-generation'); return redirect()->route('vcard.processing', ['vcard' => $vcard->id]) ->with('message', count($sources) > 1 ? 'A IA est a analisar ' . count($sources) . ' fontes para criar o seu carto...' : 'A IA est a preparar o seu carto...' ); } /** Show processing screen */ public function processing(Vcard $vcard) { if ($vcard->user_id !== Auth::id()) { abort(403); } return view('vcard.processing', compact('vcard')); } /** API: Poll AI status */ public function aiStatus(Vcard $vcard): JsonResponse { if ($vcard->user_id !== Auth::id()) { return response()->json(['error' => 'Unauthorized'], 403); } $aiData = null; if ($vcard->ai_status === 'completed' && $vcard->ai_data) { $decoded = json_decode($vcard->ai_data, true); $aiData = [ 'template_id' => $decoded['template_id'] ?? null, 'color_primary' => $decoded['color_primary'] ?? null, 'confidence' => $decoded['confidence'] ?? null, 'brand_personality' => $decoded['brand_personality'] ?? null, ]; } return response()->json([ 'vcard_id' => $vcard->id, 'ai_status' => $vcard->ai_status, 'template_id' => $vcard->template_id, 'ai_data' => $aiData, 'redirect_url' => $vcard->ai_status === 'completed' ? route('user.vcard.edit', $vcard->id) : null, ]); } } PK8\(3:&Controllers/NfcCardOrderController.phpnu[select('*')->findOrFail($nfcOrder); return view('sadmin.nfc_card_order.show', compact('nfcCardOrder')); } public function downloadLogo($id) { $nfcCardOrder = NfcOrders::findOrFail($id); $mediaCollection = $nfcCardOrder->media; if (! empty($mediaCollection)) { $mediaItem = $mediaCollection->first(); $mediaPath = $mediaItem->getPath(); if (config('app.media_disc') === 'public') { $mediaPath = (Str::after($mediaItem->getUrl(), '/uploads')); } $file = Storage::disk(config('app.media_disc'))->get($mediaPath); $headers = [ 'Content-Type' => $mediaItem->mime_type, 'Content-Description' => 'File Transfer', 'Content-Disposition' => "attachment; filename={$mediaItem->file_name}", 'filename' => $mediaItem->file_name, ]; return response($file, 200, $headers); } } } PK8\&--3Controllers/Auth/AuthenticatedSessionController.phpnu[authenticate(); $request->session()->regenerate(); return redirect()->intended(RouteServiceProvider::HOME); } /** * Destroy an authenticated session. */ public function destroy(Request $request): RedirectResponse { Auth::guard('web')->logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/'); } } PK8\Eߴ<Controllers/Auth/EmailVerificationNotificationController.phpnu[user()->hasVerifiedEmail()) { return redirect()->intended(RouteServiceProvider::HOME); } $request->user()->sendEmailVerificationNotification(); return back()->with('status', 'verification-link-sent'); } } PK8\1 SS6Controllers/Auth/EmailVerificationPromptController.phpnu[user()->hasVerifiedEmail() ? redirect()->intended(RouteServiceProvider::HOME) : view('auth.verify-email'); } } PK8\!66*Controllers/Auth/VerifyEmailController.phpnu[user()->hasVerifiedEmail()) { return redirect()->intended(RouteServiceProvider::HOME.'?verified=1'); } if ($request->user()->markEmailAsVerified()) { event(new Verified($request->user())); } return redirect()->intended(RouteServiceProvider::HOME.'?verified=1'); } } PK8\δRGG-Controllers/Auth/RegisteredUserController.phpnu[validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class], 'password' => ['required', 'confirmed', Rules\Password::defaults()], ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); event(new Registered($user)); Auth::login($user); return redirect(RouteServiceProvider::HOME); } } PK8\9##0Controllers/Auth/PasswordResetLinkController.phpnu[validate([ 'email' => ['required', 'email'], ]); // We will send the password reset link to this user. Once we have attempted // to send the link, we will examine the response then see the message we // need to show to the user. Finally, we'll send out a proper response. $status = Password::sendResetLink( $request->only('email') ); return $status == Password::RESET_LINK_SENT ? back()->with('status', __($status)) : back()->withInput($request->only('email')) ->withErrors(['email' => __($status)]); } } PK8\vt**Controllers/Auth/error_lognu[[17-Jun-2026 01:40:29 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/PasswordResetLinkController.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/PasswordResetLinkController.php on line 15 [17-Jun-2026 01:40:30 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/ConfirmablePasswordController.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/ConfirmablePasswordController.php on line 13 [17-Jun-2026 01:40:31 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationPromptController.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationPromptController.php on line 9 [17-Jun-2026 01:40:33 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationNotificationController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationNotificationController.php on line 10 [17-Jun-2026 01:40:35 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/NewPasswordController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/NewPasswordController.php on line 18 [17-Jun-2026 01:40:36 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/VerifyEmailController.php:14 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/VerifyEmailController.php on line 14 [17-Jun-2026 01:40:36 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/RegisteredUserController.php:30 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/RegisteredUserController.php on line 30 [17-Jun-2026 01:40:51 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/AuthenticatedSessionController.php:21 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/AuthenticatedSessionController.php on line 21 [19-Jun-2026 18:40:43 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/ConfirmablePasswordController.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/ConfirmablePasswordController.php on line 13 [19-Jun-2026 18:40:44 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationPromptController.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationPromptController.php on line 9 [19-Jun-2026 18:40:50 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/NewPasswordController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/NewPasswordController.php on line 18 [19-Jun-2026 18:40:51 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/VerifyEmailController.php:14 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/VerifyEmailController.php on line 14 [19-Jun-2026 18:40:51 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationNotificationController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationNotificationController.php on line 10 [19-Jun-2026 18:40:52 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/RegisteredUserController.php:30 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/RegisteredUserController.php on line 30 [19-Jun-2026 18:40:52 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/AuthenticatedSessionController.php:21 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/AuthenticatedSessionController.php on line 21 [16-Jul-2026 10:02:04 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationNotificationController.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationNotificationController.php on line 10 [16-Jul-2026 10:03:04 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/AuthenticatedSessionController.php:21 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/AuthenticatedSessionController.php on line 21 [16-Jul-2026 11:31:04 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationPromptController.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/EmailVerificationPromptController.php on line 9 [16-Jul-2026 18:45:04 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\AppBaseController" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/RegisteredUserController.php:30 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/RegisteredUserController.php on line 30 [16-Jul-2026 23:02:29 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/NewPasswordController.php:18 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/NewPasswordController.php on line 18 [17-Jul-2026 00:13:46 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/ConfirmablePasswordController.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/ConfirmablePasswordController.php on line 13 [17-Jul-2026 00:17:20 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/VerifyEmailController.php:14 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/VerifyEmailController.php on line 14 [17-Jul-2026 05:39:17 UTC] PHP Fatal error: Uncaught Error: Class "App\Http\Controllers\Controller" not found in /home/cardxfeb/public_html/app/Http/Controllers/Auth/PasswordResetLinkController.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Controllers/Auth/PasswordResetLinkController.php on line 15 PK8\q K*Controllers/Auth/NewPasswordController.phpnu[ $request]); } /** * Handle an incoming new password request. * * @throws \Illuminate\Validation\ValidationException */ public function store(Request $request): RedirectResponse { $request->validate([ 'token' => ['required'], 'email' => ['required', 'email'], 'password' => ['required', 'confirmed', Rules\Password::defaults()], ]); // Here we will attempt to reset the user's password. If it is successful we // will update the password on an actual user model and persist it to the // database. Otherwise we will parse the error and return the response. $status = Password::reset( $request->only('email', 'password', 'password_confirmation', 'token'), function ($user) use ($request) { $user->forceFill([ 'password' => Hash::make($request->password), 'remember_token' => Str::random(60), ])->save(); event(new PasswordReset($user)); } ); // If the password was successfully reset, we will redirect the user back to // the application's home authenticated view. If there is an error we can // redirect them back to where they came from with their error message. return $status == Password::PASSWORD_RESET ? redirect()->route('login')->with('status', __($status)) : back()->withInput($request->only('email')) ->withErrors(['email' => __($status)]); } } PK8\Ji2Controllers/Auth/ConfirmablePasswordController.phpnu[validate([ 'email' => $request->user()->email, 'password' => $request->password, ])) { throw ValidationException::withMessages([ 'password' => __('auth.password'), ]); } $request->session()->put('auth.password_confirmed_at', time()); return redirect()->intended(RouteServiceProvider::HOME); } } PK8\UЪ??#Controllers/FrontFAQsController.phpnu[frontFaqsRepo = $frontFaqsRepo; } /** * Display a listing of the resource. */ public function index() { return view('sadmin.faqs.index'); } /** * Store a newly created resource in storage. */ public function store(CreateFrontFaqRequest $request) { $input = $request->all(); $faqs = $this->frontFaqsRepo->store($input); return $this->sendResponse($faqs, __('messages.faqs.create_front_faqs')); } /** * Show the form for editing the specified resource. */ public function edit(string $id): JsonResponse { $language = getLogInUser()->language; $faq = FrontFAQs::where(['id'=> $id,'language' => $language])->first(); return $this->sendResponse($faq, 'FAQs successfully retrieved.'); } /** * Update the specified resource in storage. */ public function update(CreateFrontFaqRequest $request, string $id): JsonResponse { $input = $request->all(); $testimonial = $this->frontFaqsRepo->update($input, $request->faqs_id); return $this->sendResponse($testimonial, __('messages.faqs.update_front_faqs')); } /** * Remove the specified resource from storage. */ public function destroy(string $id): JsonResponse { FrontFAQs::where('id', $id)->delete(); return $this->sendSuccess('FAQs deleted successfully.'); } } PK8\7_0'Controllers/UserDashboardController.phpnu[all(); $endDate = $request->date; $format = getSuperAdminSettingValue('datetime_method'); $input['date'] = ($format == 1) ? Carbon::createFromFormat('d M, Y', $endDate)->format('Y-m-d H:i:s') : (($format == 2) ? Carbon::createFromFormat('M d, Y', $endDate)->format('Y-m-d H:i:s') : (($format == 3) ? Carbon::createFromFormat('d/m/Y', $endDate)->format('Y-m-d H:i:s') : (($format == 4) ? Carbon::createFromFormat('Y/m/d', $endDate)->format('Y-m-d H:i:s') : (($format == 5) ? Carbon::createFromFormat('m/d/Y', $endDate)->format('Y-m-d H:i:s') : (($format == 6) ? Carbon::createFromFormat('Y-m-d', $endDate)->format('Y-m-d H:i:s') : Carbon::parse($endDate)->format('Y-m-d H:i:s') ) ) ) ) ); try { DB::beginTransaction(); /** @var Vcard $vcard */ $vcard = Vcard::with('tenant.user')->where('id', $input['vcard_id'])->first(); $input['toName'] = $vcard->fullName > 1 ? $vcard->fullName : $vcard->tenant->user->fullName; $input['vcard_name'] = $vcard->name; $userId = $vcard->tenant->user->id; if (isset($input['payment_method'])) { //Stripe if ($input['payment_method'] == Appointment::STRIPE) { /** @var AppointmentRepository $repo */ $repo = App::make(AppointmentRepository::class); $result = $repo->userCreateSession($userId, $vcard, $input); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.stripe_created')); } //Phonepe if ($input['payment_method'] == Appointment::PHONEPE) { $currency = $input['currency_code']; if ($currency != "INR") { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_phonepe')); } /** @var UserPhonepeController $phonepe */ $phonepe = App::make(UserPhonepeController::class); $result = $phonepe->appointmentBook($userId, $vcard, $input); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.phonepe_created')); } // PAYSTACK if ($input['payment_method'] == Appointment::PAYSTACK) { if (isset($input['currency_code']) && ! in_array( strtoupper($input['currency_code']), getPayStackSupportedCurrencies() )) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_paystack')); } $currency = $input['currency_code']; $amount = $input['amount']; $currencyCode = $input['currency_code']; $clientId = getUserSettingValue('paystack_key', $userId); $clientSecret = getUserSettingValue('paystack_secret', $userId); config([ 'paystack.publicKey' => $clientId, 'paystack.secretKey' => $clientSecret, 'paystack.paymentUrl' => "https://api.paystack.co", ]); $data = [ 'email' => $input['email'], 'orderID' => $vcard->id, 'amount' => $amount * 100, 'quantity' => 1, 'currency' => $currency, 'reference' => Paystack::genTranxRef(), 'metadata' => json_encode(['vcard_id' => $vcard->id]), ]; $result = Paystack::getAuthorizationUrl($data)->redirectNow(); session()->put(['appointment_details' => $input]); session(['vcard_user_id' => $userId, 'tenant_id' => $vcard->tenant->id, 'vcard_id' => $vcard->id]); $targetUrl = $result->getTargetUrl(); DB::commit(); return $this->sendResponse(['payment_method' => $input['payment_method'], $targetUrl], __('messages.placeholder.paystack_created')); } //flutterwave if ($input['payment_method'] == Appointment::FLUTTERWAVE) { $supportedCurrency = ['GBP', 'CAD', 'XAF', 'CLP', 'COP', 'EGP', 'EUR', 'GHS', 'GNF', 'KES', 'MWK', 'MAD', 'NGN', 'RWF', 'SLL', 'STD', 'ZAR', 'TZS', 'UGX', 'USD', 'XOF', 'ZMW']; if (isset($input['currency_code']) && ! in_array( strtoupper($input['currency_code']), $supportedCurrency )) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_flutterwave')); } /** @var UserFlutterwaveController $flutterwave */ $flutterwave = App::make(UserFlutterwaveController::class); $result = $flutterwave->userOnBoard($userId, $vcard, $input); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.flutterwave_created')); } //PayPal if ($input['payment_method'] == Appointment::PAYPAL) { if (isset($input['currency_code']) && ! in_array( strtoupper($input['currency_code']), getPayPalSupportedCurrencies() )) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported')); } /** @var PaypalController $payPalCont */ $payPalCont = App::make(PaypalController::class); $result = $payPalCont->userOnBoard($userId, $vcard, $input); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.paypal_created')); } //Manually if ($input['payment_method'] == Appointment::MANUALLY) { $currencyCode = $input['currency_code']; $currency = Currency::where('currency_code', $currencyCode)->first(); $appointmentTransaction = AppointmentTransaction::create([ 'vcard_id' => $input['vcard_id'], 'transaction_id' => null, 'currency_id' => $currency->id, 'amount' => $input['amount'], 'tenant_id' => $vcard->tenant->id, 'type' => Appointment::MANUALLY, 'status' => 0, 'meta' => json_encode([]), ]); $appointmentTransactionId = $appointmentTransaction->id; DB::commit(); $inputDate = Carbon::parse($input['date'])->format('Y-m-d'); ScheduleAppointment::create([ 'vcard_id' => $input['vcard_id'], 'name' => $input['name'], 'email' => $input['email'], 'phone' => $input['phone'], 'date' => $inputDate, 'from_time' => $input['from_time'], 'to_time' => $input['to_time'], 'remarks' => null, 'person_count' => null, 'payment_type' => Appointment::MANUALLY, 'status' => 0, 'appointment_tran_id' => $appointmentTransactionId, 'meta' => json_encode([]), ]); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], ], __('messages.placeholder.manual_payment')); } } /** @var AppointmentRepository $appointmentRepo */ $appointmentRepo = App::make(AppointmentRepository::class); $vcardEmail = is_null($vcard->email) ? $vcard->tenant->user->email : $vcard->email; $appointmentRepo->appointmentStoreOrEmail($input, $vcardEmail); DB::commit(); setLocalLang(getLocalLanguage()); return $this->sendSuccess(__('messages.placeholder.appointment_created')); } catch (Exception $e) { DB::rollBack(); return $this->sendError($e->getMessage()); } } public function paymentStatus(Request $request): JsonResponse { try { $appointmentStatus = $request->status; $appointmentTransaction = ScheduleAppointment::find($request->id); $appointmentTranId = $appointmentTransaction->appointment_tran_id; AppointmentTransaction::where('id', $appointmentTranId)->update([ 'type' => $appointmentStatus, ]); return $this->sendSuccess(__('messages.placeholder.payment_status')); } catch (\Exception $e) { return $this->sendError($e->getMessage()); } } /** * @return Application|Factory|View */ public function appointmentsList(): \Illuminate\View\View { return view('appointment.list'); } /** * @return Application|Factory|View */ public function appointmentCalendar(Request $request) { if ($request->ajax()) { $data = $this->getCalendar(); return $this->sendResponse($data, 'Appointment calendar data retrieved successfully.'); } return view('appointment.appointment-calendar'); } /** * @return array */ public function getCalendar() { /** @var ScheduleAppointment $appointment */ $appointments = ScheduleAppointment::whereHas('vcard', function ($q) { $q->where('tenant_id', getLogInTenantId()); })->get(); $data = []; foreach ($appointments as $key => $appointment) { if (getUserSettingValue('time_format', getLogInUserId()) == UserSetting::HOUR_24) { $startTime = date('H:i', strtotime($appointment->from_time)); $endTime = date('H:i', strtotime($appointment->to_time)); $start = Carbon::createFromFormat( 'Y-m-d H:i', date('Y-m-d', strtotime($appointment->date)) . ' ' . $startTime ); $end = Carbon::createFromFormat( 'Y-m-d H:i', date('Y-m-d', strtotime($appointment->date)) . ' ' . $endTime ); } else { $startTime = date('h:i A', strtotime($appointment->from_time)); $endTime = date('h:i A', strtotime($appointment->to_time)); $start = Carbon::createFromFormat( 'Y-m-d h:i A', date('Y-m-d', strtotime($appointment->date)) . ' ' . $startTime ); $end = Carbon::createFromFormat( 'Y-m-d h:i A', date('Y-m-d', strtotime($appointment->date)) . ' ' . $endTime ); } $data[$key]['id'] = $appointment->id; if (getUserSettingValue('time_format', getLogInUserId()) == UserSetting::HOUR_24) { $data[$key]['startDateTime'] = $start->format('jS M, Y - H:i'); $data[$key]['endDateTime'] = $end->format('jS M, Y - H:i'); $data[$key]['title'] = date('H:i', strtotime($appointment->from_time)) . '-' . date( 'H:i', strtotime($appointment->to_time) ); } else { $data[$key]['startDateTime'] = $start->format('jS M, Y - h:i A'); $data[$key]['endDateTime'] = $end->format('jS M, Y - h:i A'); $data[$key]['title'] = date('h:i A', strtotime($startTime)) . '-' . date('h:i A', strtotime($endTime)); } $data[$key]['name'] = $appointment->name; $data[$key]['email'] = $appointment->email; $data[$key]['phone'] = is_null($appointment->phone) ? 'N/A' : $appointment->phone; $data[$key]['vcardName'] = $appointment->vcard->name; $data[$key]['start'] = $start->toDateTimeString(); $data[$key]['description'] = $appointment->vcard->description; $data[$key]['status'] = $appointment->vcard->status; $data[$key]['end'] = $end->toDateTimeString(); $data[$key]['color'] = '#FFF'; $data[$key]['className'] = [getStatusClassName($appointment->vcard->status)]; } return $data; } /** * @return mixed */ public function appointmentsUpdate(ScheduleAppointment $appointment) { $appointments = ScheduleAppointment::findOrFail($appointment->id); $appointments->update([ 'status' => ScheduleAppointment::COMPLETED, ]); $data['name'] = $appointment->name; $data['date'] = Carbon::parse($appointment->date)->format('d M, Y'); $data['from_time'] = $appointment->from_time; $data['to_time'] = $appointment->to_time; Mail::to($appointment->email) ->send(new AppointmentApproveMail($data)); return $this->sendSuccess(__('messages.flash.plan_status')); } public function destroy(ScheduleAppointment $appointment): JsonResponse { if ($appointment->appointment_tran_id == null) { $appointment->delete(); return $this->sendSuccess('Appointment deleted successfully.'); } return $this->sendError(__('messages.placeholder.paid_appointment_cant_delete')); } } PK8\5:P( ( !Controllers/FeatureController.phpnu[featureRepository = $featureRepository; } public function index(): \Illuminate\View\View { return view('settings.features.index'); } public function show($id) { // } public function edit(Feature $feature): \Illuminate\View\View { return view('settings.features.edit', compact('feature')); } public function new(): \Illuminate\View\View { return view('settings.features.new'); } public function update(UpdateFeatureRequest $request, $id): RedirectResponse { $input = $request->all(); $this->featureRepository->update($input, $id); Flash::success(__('messages.flash.feature_update')); return redirect(route('features.index')); } public function store(UpdateFeatureRequest $request): RedirectResponse { $input = $request->all(); // Get current language from logged-in user $language = getLogInUser()->language; $input['language'] = $language; // Validate unique slug for the language $this->validate($request, [ 'slug' => 'required|unique:features,slug,NULL,id,language,' . $language, ]); // Generate slug if not provided if (empty($input['slug'])) { $count = Feature::where('language', $language)->count(); $input['slug'] = $language . '.features.' . ($count + 1); } else { // Ensure slug format if (!Str::startsWith($input['slug'], $language . '.features.')) { $input['slug'] = $language . '.features.' . Str::slug($input['slug']); } } $this->featureRepository->update($input, null); Flash::success(__('messages.flash.feature_update')); return redirect(route('features.index')); } }PK8\}ɧ(Controllers/ContactRequestController.phpnu[email)->latest()->first(); if ($contactRequest) { return redirect()->route('add-contact', $request->vcard_id); } else { $input = $request->all(); try { DB::beginTransaction(); $contactRequest = ContactRequest::create($input); DB::commit(); setLocalLang(getLocalLanguage()); return $contactRequest; } catch (Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } return redirect()->back(); } } PK8\ O Controllers/BlogController.phpnu[blogRepository = $blogRepository; } /** * Display a listing of the resource. */ public function index() { return view('sadmin.blog.index'); } /** * Show the form for creating a new resource. */ public function create() { return view('sadmin.blog.create'); } /** * Store a newly created resource in storage. */ public function store(CreateBlogRequest $request) { $input = $request->all(); $this->blogRepository->store($input); Flash::success(__('messages.flash.blog_create')); return redirect(route('blogs.index')); } /** * Display the specified resource. */ public function show(Blog $blog) { return view('sadmin.blog.show', compact('blog')); } /** * Show the form for editing the specified resource. */ public function edit(Blog $blog) { return view('sadmin.blog.edit', compact('blog')); } /** * Update the specified resource in storage. */ public function update(UpdateBlogRequest $request, $id) { $input = $request->all(); $this->blogRepository->update($input, $id); Flash::success(__('messages.flash.blog_update')); return redirect(route('blogs.index')); } /** * Remove the specified resource from storage. */ public function destroy(Blog $blog) { $blog->delete(); return $this->sendSuccess('Blog deleted successfully.'); } public function slug(Request $request) { $text = $request->text; if ($text == '') { $text = ''; } $slug = preg_replace('/[^\p{L}\p{N}]+/u', '-', trim($text)); return $this->sendResponse($slug, __('messages.placeholder.content_generated_successfully')); } public function updateBlogStatus(Blog $blog) { $blog->update([ 'status' => ! $blog->status, ]); return $this->sendSuccess(__('messages.flash.blog_status')); } } PK8\vI!Controllers/AppBaseController.phpnu[ true, 'message' => $message, ], 200); } } PK8\iЄ66#Controllers/VcardBlogController.phpnu[vcardBlogRepo = $vcardBlogRepo; } /** * @return Application|Factory|View */ public function index(): \Illuminate\View\View { return view('vcards.blogs.index'); } /** * @return mixed */ public function store(CreateVcardBlogRequest $request) { $input = $request->all(); $blog = $this->vcardBlogRepo->store($input); return $this->sendResponse($blog, __('messages.flash.create_blog')); } /** * @return mixed */ public function edit(VcardBlog $vcardBlog) { return $this->sendResponse($vcardBlog, 'VCard successfully retrieved.'); } /** * @return mixed */ public function update(UpdateVcardBlogRequest $request, VcardBlog $vcardBlog) { $input = $request->all(); $service = $this->vcardBlogRepo->update($input, $vcardBlog->id); return $this->sendResponse($service, __('messages.flash.update_blog')); } /** * @return mixed */ public function destroy(VcardBlog $vcardBlog) { $vcardBlog->clearMediaCollection(VcardBlog::BLOG_PATH); $vcardBlog->delete(); return $this->sendSuccess(__('messages.flash.delete_blog')); } } PK8\j-CCControllers/PlanController.phpnu[planRepository = $planRepository; } /** * @param Request $request * @return Application|Factory|View */ public function index(): \Illuminate\View\View { return view('sadmin.plans.index'); } /** * @return Application|Factory|View */ public function create(): \Illuminate\View\View { return view('sadmin.plans.create'); } /** * @return Application|RedirectResponse|Redirector */ public function store(CreatePlanRequest $request): RedirectResponse { $input = $request->all(); $this->planRepository->store($input); Flash::success(__('messages.flash.plan_create')); return redirect(route('plans.index')); } /** * @return Application|Factory|View */ public function edit(Plan $plan): \Illuminate\View\View { $planCustomFields = PlanCustomField::where('plan_id', $plan->id)->get(); $planCustomFieldsCount = $planCustomFields->count(); $planCustomFields = $planCustomFieldsCount > 0 ? $planCustomFields : []; $templates = $plan->templates()->pluck('template_id')->toArray(); $feature = PlanFeature::wherePlanId($plan->id)->first(); return view('sadmin.plans.edit', compact('plan', 'feature', 'templates','planCustomFields')); } /** * @return Application|RedirectResponse|Redirector */ public function update(UpdatePlanRequest $request, $id): RedirectResponse { $input = $request->all(); $input['custom_select'] = $request->has('custom_select') ? 1 : 0; $maxStorageUsed = getMaxStorageUsedByPlan($id); $newStorageLimit = $request->input('storage_limit'); if ($newStorageLimit < $maxStorageUsed) { return redirect()->back()->withErrors([ 'storage_limit' => trans('messages.plan.storage_limit_exist', ['maxStorageUsed' => number_format($maxStorageUsed, 2)]) ]); } $this->planRepository->update($input, $id); Flash::success(__('messages.flash.plan_update')); return redirect(route('plans.index')); } public function updateStatus(Plan $plan): JsonResponse { $plan->update([ 'is_active' => ! $plan->is_active, ]); return $this->sendSuccess(__('messages.flash.plan_status')); } public function updatePlanStatus(Plan $plan) { $plan->update([ 'status' => ! $plan->status, ]); return $this->sendSuccess(__('messages.flash.plan_status')); } /** * @return mixed */ public function destroy(Plan $plan) { $subscription = Subscription::where('plan_id', $plan->id)->where('status', Subscription::ACTIVE)->count(); if ($plan->is_default == Plan::IS_DEFAULT) { return $this->sendError(__('messages.placeholder.default_plan_can_not_be_delete')); } if ($subscription > 0) { return $this->sendError(__('messages.placeholder.plan_already_used')); } $plan->delete(); return $this->sendSuccess('Plan deleted successfully.'); } public function makePlanDefault(int $id): JsonResponse { $defaultSubscriptionPlan = Plan::where('is_default', 1)->first(); $defaultSubscriptionPlan->update(['is_default' => 0]); $subscriptionPlan = Plan::find($id); if (empty($subscriptionPlan)) { $defaultSubscriptionPlan->update(['is_default' => 1]); return $this->sendSuccess(__('messages.flash.plan_default')); } if ($subscriptionPlan->trial_days == 0) { $subscriptionPlan->trial_days = Plan::TRIAL_DAYS; } $subscriptionPlan->is_default = 1; $subscriptionPlan->save(); return $this->sendSuccess(__('messages.flash.plan_default')); } } PK8\$VN|$$!Controllers/ProductController.phpnu[vcardProductRepo = $vcardProductRepo; } /** * @param $id * @return mixed */ public function store(CreateProductRequest $request): JsonResponse { $input = $request->all(); $service = $this->vcardProductRepo->store($input); return $this->sendResponse($service, __('messages.flash.create_product')); } public function edit($id): JsonResponse { $product = Product::with('currency')->where('id', $id)->first(); if ($product->currency) { $product['formatted_amount'] = getCurrencyAmount($product->price, $product->currency->currency_icon); } return $this->sendResponse($product, 'Product successfully retrieved.'); } public function destroy($id): JsonResponse { $product = Product::where('id', $id)->first(); $product->clearMediaCollection(Product::PRODUCT_PATH); $product->delete(); return $this->sendSuccess('Product deleted successfully.'); } public function update(UpdateProductRequest $request, $id): JsonResponse { $input = $request->all(); $service = $this->vcardProductRepo->update($input, $id); return $this->sendResponse($service, __('messages.flash.update_product')); } public function buy(ProductBuyRequest $request) { $input = $request->all(); $product = Product::with('currency', 'vcard.user')->whereId($input['product_id'])->first(); $currency = isset($product->currency_id) ? $product->currency->currency_code : Currency::whereId(getUserSettingValue('currency_id', $product->vcard->user->id))->first()->currency_code; try { App::setLocale(Session::get('languageChange_' . $product->vcard->url_alias)); DB::beginTransaction(); if ($input['payment_method'] == Product::STRIPE) { /** @var VcardProductRepository $repo */ $repo = App::make(VcardProductRepository::class); $result = $repo->productBuySession($input, $product); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.stripe_created')); } // PhonePe if ($input['payment_method'] == Product::PHONEPE) { if ($currency != "INR") { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_phonepe')); } /** @var UserPhonepeController $phonepe */ $phonepe = App::make(UserPhonepeController::class); $result = $phonepe->productBuy($input, $product); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.phonepe_created')); } // Paystack if ($input['payment_method'] == Product::PAYSTACK) { if (isset($currency) && !in_array(strtoupper($currency), getPayStackSupportedCurrencies())) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_paystack')); } /** @var UserPaystackController $paystack */ $paystack = App::make(UserPaystackController::class); $result = $paystack->productBuy($input, $product); $targetUrl = $result->getTargetUrl(); DB::commit(); return $this->sendResponse(['payment_method' => $input['payment_method'], $targetUrl], __('messages.placeholder.paystack_created')); } // Flutterwave if ($input['payment_method'] == Product::FLUTTERWAVE) { $supportedCurrency = ['GBP', 'CAD', 'XAF', 'CLP', 'COP', 'EGP', 'EUR', 'GHS', 'GNF', 'KES', 'MWK', 'MAD', 'NGN', 'RWF', 'SLL', 'STD', 'ZAR', 'TZS', 'UGX', 'USD', 'XOF', 'ZMW']; if (isset($currency) && !in_array(strtoupper($currency), $supportedCurrency)) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported_flutterwave')); } /** @var UserFlutterwaveController $flutterwave */ $flutterwave = App::make(UserFlutterwaveController::class); $targetUrl = $flutterwave->productBuy($input, $product); DB::commit(); return $this->sendResponse(['payment_method' => $input['payment_method'], $targetUrl], __('messages.placeholder.flutterwave_created')); } // Razor Pay if ($input['payment_method'] == Product::RAZORPAY) { $repo = App::make(VcardProductRepository::class); $result = $repo->userCreateRazorPaySession($input, $product, $currency); $result['payment_method'] = $input['payment_method']; $userId = $product->vcard->user->id; $product = Product::find($input['product_id']); Session::put('productId', $product); DB::commit(); return $this->sendResponse([ $result ], __('messages.nfc.razorpay_session_success')); } //manually if ($input['payment_method'] == Product::MANUALLY) { $product = Product::find($input['product_id']); ProductTransaction::create([ 'name' => $input['name'], 'email' => $input['email'], 'phone' => $input['phone'], 'address' => $input['address'], 'type' => $input['payment_method'], 'product_id' => $input['product_id'], 'currency_id' => $product->currency_id, 'amount' => $product->price, 'status' => 1, ]); $orderMailData = [ 'user_name' => $product->vcard->user->full_name, 'customer_name' => $input['name'], 'product_name' => $product->name, 'product_price' => $product->price, 'phone' => $input['phone'], 'address' => $input['address'], 'payment_type' => __('messages.manually'), 'order_date' => Carbon::now()->format('d M Y'), ]; if (getUserSettingValue('product_order_send_mail_customer', $product->vcard->user->id)) { Mail::to($input['email'])->send(new ProductOrderSendCustomer($orderMailData)); } if (getUserSettingValue('product_order_send_mail_user', $product->vcard->user->id)) { Mail::to($product->vcard->user->email)->send(new ProductOrderSendUser($orderMailData)); } $result['payment_method'] = $input['payment_method']; DB::commit(); return $this->sendResponse([ $result ], __('messages.flash.product_purchase_success')); } //PayPal if ($input['payment_method'] == Product::PAYPAL) { if (isset($currency) && !in_array(strtoupper($currency), getPayPalSupportedCurrencies())) { return $this->sendError(__('messages.placeholder.this_currency_is_not_supported')); } /** @var PaypalController $payPalCont */ $payPalCont = App::make(PaypalController::class); $result = $payPalCont->buyProductOnboard($input, $product); DB::commit(); return $this->sendResponse([ 'payment_method' => $input['payment_method'], $result, ], __('messages.placeholder.paypal_created')); } } catch (Exception $e) { DB::rollBack(); return $this->sendError($e->getMessage()); } } public function updateProductStatus($id, $status) { $product = ProductTransaction::find($id); if (!$product) { return redirect()->back()->with('error', 'Product not found.'); } $product->status = $status; $product->save(); return redirect()->back()->with('success', __('messages.flash.product_status_change')); } } PK8\g=j??*Controllers/FrontTestimonialController.phpnu[frontTestimonialRepo = $frontTestimonialRepo; } /** * @param Request $request * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View * * @throws \Exception */ public function index(): View { return view('sadmin.testimonial.index'); } /** * Store a newly created resource in storage. */ public function store(CreateFrontTestimonialRequest $request): JsonResponse { $input = $request->all(); $testimonial = $this->frontTestimonialRepo->store($input); return $this->sendResponse($testimonial, __('messages.flash.create_front_testimonial')); } public function edit(FrontTestimonial $frontTestimonial): JsonResponse { return $this->sendResponse($frontTestimonial, 'Testimonial successfully retrieved.'); } public function update(UpdateFrontTestimonialRequest $request): JsonResponse { $input = $request->all(); $testimonial = $this->frontTestimonialRepo->update($input, $request->testimonial_id); return $this->sendResponse($testimonial, __('messages.flash.update_front_testimonial')); } /** * Remove the specified resource from storage. * * @param int $id */ public function destroy(FrontTestimonial $frontTestimonial): JsonResponse { $frontTestimonial->clearMediaCollection(FrontTestimonial::PATH); $frontTestimonial->delete(); return $this->sendSuccess('Testimonial deleted successfully.'); } } PK8\KXX(Controllers/InstagramEmbedController.phpnu[instagramembedRepo = $instagramembedRepo; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request, $id) { } /** * Store a newly created resource in storage. * * @return \Illuminate\Http\Response */ public function store(CreateInstagramEmbedRequest $request) { $input = $request->all(); $this->instagramembedRepo->store($input); return $this->sendSuccess(__('messages.placeholder.embedtag_created')); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit(InstagramEmbed $instagramembed) { return $this->sendResponse($instagramembed, 'instagramembed successfully retrieved.'); } /** * Update the specified resource in storage. * * @param int $id * @return \Illuminate\Http\Response */ public function update(UpdateInstagramEmbedRequest $request, InstagramEmbed $instagramembed) { $input = $request->all(); $this->instagramembedRepo->update($input, $instagramembed->id); return $this->sendSuccess(__('messages.placeholder.embedtag_updated')); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($instagramembed) { InstagramEmbed::destroy($instagramembed); return $this->sendSuccess('VCard service deleted successfully.'); } } PK8\i&Controllers/VcardServiceController.phpnu[vcardServiceRepo = $vcardServiceRepo; } /** * @return mixed */ public function index($id) { } public function store(CreateVcardServiceRequest $request): JsonResponse { $input = $request->all(); $service = $this->vcardServiceRepo->store($input); return $this->sendResponse($service, __('messages.flash.create_service')); } public function edit(VcardService $vcardService): JsonResponse { return $this->sendResponse($vcardService, 'VCard successfully retrieved.'); } public function update(UpdateVcardServiceRequest $request, VcardService $vcardService): JsonResponse { $input = $request->all(); $service = $this->vcardServiceRepo->update($input, $vcardService->id); return $this->sendResponse($service, __('messages.flash.update_service')); } public function destroy(VcardService $vcardService): JsonResponse { $vcardService->clearMediaCollection(VcardService::SERVICES_PATH); $vcardService->delete(); return $this->sendSuccess(__('messages.flash.delete_service')); } } PK8\إA$A$!Controllers/SettingController.phpnu[settingRepository = $settingRepository; } /** * @return Application|Factory|View */ public function index(Request $request): \Illuminate\View\View { $setting = Setting::pluck('value', 'key')->toArray(); $paymentGateways = Plan::PAYMENT_METHOD; $paypalMode = Plan::PAYPAL_MODE; $selectedPaymentGateways = PaymentGateway::pluck('payment_gateway_id', 'payment_gateway')->toArray(); $metas = Meta::first(); $sectionName = ($request->get('section') === null) ? 'general' : $request->get('section'); if (! empty($metas)) { $metas = $metas->toArray(); } $mailsetting = MailSetting::first(); return view( "settings.$sectionName", compact('setting', 'selectedPaymentGateways', 'metas', 'sectionName', 'paymentGateways', 'paypalMode', 'mailsetting') ); } public function update(UpdateSettingRequest $request): RedirectResponse { if ($request->favicon) { $imageSize = getimagesize($request->favicon); $width = $imageSize[0]; $height = $imageSize[1]; if ($width > 16 && $height > 16) { Flash::error(__('messages.placeholder.favicon_invalid')); return redirect()->back(); } } $id = Auth::id(); $this->settingRepository->update($request->all(), $id); Flash::success(__('messages.flash.setting_update')); return redirect(route('setting.index')); } /** * @return Application|Factory|View */ public function frontCmsIndex(): \Illuminate\View\View { $language = getLogInUser()->language; $setting = Setting::where('language', $language)->orWhere('language','')->pluck('value', 'key')->toArray(); return view('settings.front_cms.index', compact('setting')); } /** * @return Application|RedirectResponse|Redirector */ public function frontCmsUpdate(UpdateFrontCmsRequest $request): RedirectResponse { $id = Auth::id(); $this->settingRepository->update($request->all(), $id); Flash::success(__('messages.flash.front_cms')); return redirect(route('setting.front.cms')); } public function settingTermsConditions(Request $request): RedirectResponse { $inputs = $request->all(); $inputs = Arr::except($inputs, ['_token']); $inputs['terms_conditions'] = json_decode($inputs['terms_conditions']); $inputs['privacy_policy'] = json_decode($inputs['privacy_policy']); foreach ($inputs as $key => $value) { /** @var FrontCMSSetting $cmsSetting */ $termsConditions = Setting::where('key', $key)->first(); $termsConditions->update(['value' => $value]); } Flash::success(__('messages.vcard.term-condition').' '.__('messages.flash.vcard_update')); return Redirect::back(); } public function updateManualPaymentGuide(Request $request): RedirectResponse { $input = $request->all(); $input = Arr::except($input, ['_token']); $input['manual_payment_guide'] = json_decode($input['manual_payment_guide']); $input['is_manual_payment_guide_on'] = isset($input['is_manual_payment_guide_on']); foreach ($input as $key => $value) { $manualPaymentGuide = Setting::where('key', $key)->first(); $manualPaymentGuide->update(['value' => $value]); } Flash::success(__('messages.vcard.manual_payment_guide').' '.__('messages.flash.vcard_update')); return redirect()->back(); } public function updateMobileValidation() { $setting = Setting::where('key', 'mobile_validation')->firstOrFail(); $setting->update([ 'value' => $setting->value ? 0 : 1, ]); Flash::success(__('messages.flash.mobile_validation')); return $this->sendSuccess('messages.flash.mobile_validation'); } public function updateGoogleAnalytics(Request $request): RedirectResponse { Meta::query()->delete(); if (isset($request->site_title) || isset($request->site_title) || isset($request->site_title) || isset($request->site_title) || isset($request->google_analytics)) { Meta::updateOrCreate([ 'site_title' => $request->site_title, 'home_title' => $request->home_title, 'meta_keyword' => $request->meta_keyword, 'meta_description' => $request->meta_description, 'google_analytics' => $request->google_analytics, ]); } Flash::success(__('messages.vcard.google_config').' '.__('messages.flash.vcard_update')); return Redirect::back(); } public function updatePaymentMethod(UpdatePaymentRequest $request): RedirectResponse { $paymentGateways = $request->payment_gateway; $input = $request->all(); PaymentGateway::query()->delete(); if (isset($paymentGateways)) { foreach ($paymentGateways as $paymentGateway) { PaymentGateway::updateOrCreate( ['payment_gateway_id' => $paymentGateway], [ 'payment_gateway' => Plan::PAYMENT_METHOD[$paymentGateway], ] ); } } $paymentMethodKeys = [ 'stripe_key', 'stripe_secret', 'flutterwave_key', 'flutterwave_secret', 'paypal_client_id', 'paypal_secret','paypal_mode', 'razorpay_key', 'razorpay_secret', 'paystack_key', 'paystack_secret', 'phonepe_merchant_id', 'phonepe_merchant_user_id', 'phonepe_env', 'phonepe_salt_key', 'phonepe_salt_index', 'manual_payment_guide', ]; foreach ($paymentMethodKeys as $key) { $setting = Setting::where('key', $key)->first(); $setting->update(['value' => $input[$key]]); } Flash::success(__('messages.vcard.payment_config').' '.__('messages.flash.vcard_update')); return Redirect::back(); } public function updateTheme(Request $request){ $themeSetting = Setting::where('key','home_page_theme')->first(); $themeSetting->update(['value'=>$request->theme_id]); Flash::success(__('messages.flash.success_theme_update')); return Redirect::back(); } public function upgradeDatabase(){ Artisan::call('migrate', ['--force' => true]); Flash::success(__('messages.flash.database_upgrade_succesfully')); return Redirect::back(); } public function generateSitemap(){ Artisan::call('sitemap:generate'); Flash::success(__('messages.sitemap_generated')); return Redirect::back(); } public function bannerStore(HomeBannerRequest $request) { $requestData = $request->all(); $this->settingRepository->updateBanner($requestData); Flash::success(__('messages.flash.banner_data_update')); return Redirect::back(); } public function appUrlStore(MobileRequest $request) { $requestData = $request->all(); $this->settingRepository->updateAppUrl($requestData); Flash::success(__('messages.app_download_url')); return Redirect::back(); } public function homePageUpdate(Request $request): RedirectResponse { if ($request->favicon) { $imageSize = getimagesize($request->favicon); $width = $imageSize[0]; $height = $imageSize[1]; if ($width > 16 && $height > 16) { Flash::error(__('messages.placeholder.favicon_invalid')); return redirect()->back(); } } $id = Auth::id(); $this->settingRepository->homePageUpdate($request->all(), $id); Flash::success(__('messages.flash.setting_update')); return redirect()->back(); } } PK8\oiiControllers/NfcController.phpnu[NfcRepository = $NfcRepository; } public function index(Request $request) { return view('sadmin.nfc.index'); } public function store(CreateNfcRequest $request) { $input = $request->all(); $nfc = $this->NfcRepository->store($input); return $this->sendResponse($nfc,__('messages.nfc.nfc_card_created_success')); } public function edit($id){ $nfc = Nfc::with('media')->find($id); return $this->sendResponse($nfc, 'Nfc Type successfully retrieved.'); } public function update(UpdateNfcCardRequest $request,$id){ $input = $request->all(); $nfc = $this->NfcRepository->update($input, $id); return $this->sendResponse($nfc,__('messages.nfc.nfc_card_updated_success')); } public function destroy($id) { $nfcOrder = NfcOrders::where('card_type',$id)->exists(); if($nfcOrder){ return $this->sendError(__('messages.nfc.card_can_not_deleted')); } $nfc = Nfc::find($id); $nfc->delete(); return $this->sendSuccess(__('messages.nfc.nfc_card_deleted_success')); } } PK8\!2 2 &Controllers/StorageLimitController.phpnu[sum() / (1024 * 1024); $userLimit = $totalStorageData; $storageLimit = getCurrentSubscription()->plan->storage_limit; $productStorageMB = isset($userStorageData['product_storage']) ? $userStorageData['product_storage'] / (1024 * 1024) : 0; $serviceStorageMB = isset($userStorageData['services_storage']) ? $userStorageData['services_storage'] / (1024 * 1024) : 0; $testimonialStorageMB = isset($userStorageData['testimonial_storage']) ? $userStorageData['testimonial_storage'] / (1024 * 1024) : 0; $socialStorageMB = isset($userStorageData['social_storage']) ? $userStorageData['social_storage'] / (1024 * 1024) : 0; $blogStorageMB = isset($userStorageData['blog_storage']) ? $userStorageData['blog_storage'] / (1024 * 1024) : 0; $galleryStorageMB = isset($userStorageData['gallery_storage']) ? $userStorageData['gallery_storage'] / (1024 * 1024) : 0; $profileStorageMB = isset($userStorageData['profile_storage']) ? $userStorageData['profile_storage'] / (1024 * 1024) : 0; $pwaStorageMB = isset($userStorageData['pwa_storage']) ? $userStorageData['pwa_storage'] / (1024 * 1024) : 0; $avatarStorageMB = isset($userStorageData['avatar_storage']) ? $userStorageData['avatar_storage'] / (1024 * 1024) : 0; $storagePercentage = $userLimit * 100 / $storageLimit; $labels = [ __('messages.used_storage'), __('messages.unused_storage'), ]; $chartData = [ 'labels' => $labels, 'data' => [$storagePercentage, 100 - $storagePercentage], ]; return view('storage.index', compact('userLimit','chartData','storageLimit','blogStorageMB','productStorageMB','serviceStorageMB', 'testimonialStorageMB','socialStorageMB','galleryStorageMB','profileStorageMB','pwaStorageMB','avatarStorageMB')); } } PK8\A//+Controllers/EmailSubscriptionController.phpnu[all()); return $this->sendSuccess(__('messages.placeholder.subscribed_successfully')); } /** * @return mixed */ public function destroy(EmailSubscription $emailSubscription) { $emailSubscription->delete(); return $this->sendSuccess('Email deleted successfully.'); } } PK8\&Controllers/UserPaystackController.phpnu[get('vcard_user_id'); $currencyCode = Currency::whereId(getUserSettingValue('currency_id', $userId))->first(); $clientId = getUserSettingValue('paystack_key', $userId); $clientSecret = getUserSettingValue('paystack_secret', $userId); config([ 'paystack.publicKey' => $clientId, 'paystack.secretKey' => $clientSecret, 'paystack.paymentUrl' => "https://api.paystack.co", ]); $response = Paystack::getPaymentData(); $tenantId = session()->get('tenant_id'); $amount = $response['data']['requested_amount'] / 100; $currencyCode = $response['data']['currency']; $currencyId = Currency::whereCurrencyCode($currencyCode)->first()->id; $transactionId = $response['data']['id']; $vcardId = $response['data']['metadata']['vcard_id'] ?? null; $vcard = Vcard::with('tenant.user')->where('id', $vcardId)->first(); if ($vcardId) { $transactionDetails = [ 'vcard_id' => $vcardId, 'transaction_id' => $transactionId, 'currency_id' => $currencyId, 'amount' => $amount, 'tenant_id' => $tenantId, 'type' => Appointment::PAYSTACK, 'status' => Transaction::SUCCESS, 'meta' => json_encode($response), ]; $appointmentTran = AppointmentTransaction::create($transactionDetails); $appointmentInput = session()->get('appointment_details'); session()->forget('appointment_details'); $appointmentInput['appointment_tran_id'] = $appointmentTran->id; $appointmentInput['vcard_id'] = $vcardId; /** @var AppointmentRepository $appointmentRepo */ $appointmentRepo = App::make(AppointmentRepository::class); $vcardEmail = is_null($vcard->email) ? $vcard->tenant->user->email : $vcard->email; $appointmentRepo->appointmentStoreOrEmail($appointmentInput, $vcardEmail); session()->forget(['vcard_user_id', 'tenant_id', 'vcard_id']); Flash::success(__('messages.placeholder.payment_done')); App::setLocale(session::get('languageChange_' . $vcard->url_alias)); return redirect(route('vcard.show', [$vcard->url_alias, __('messages.placeholder.appointment_created')])); } else { $input = session()->get('input'); $product = Product::whereId($input['product_id'])->first(); $userId = $product->vcard->user->id; $clientId = getUserSettingValue('paystack_key', $userId); $clientSecret = getUserSettingValue('paystack_secret', $userId); config([ 'paystack.publicKey' => $clientId, 'paystack.secretKey' => $clientSecret, 'paystack.paymentUrl' => "https://api.paystack.co", ]); if (empty($product->currency_id)) { $product->currency_id = getUserSettingValue('currency_id', $userId); } $currencyId = Currency::whereId($product->currency_id)->first()->id; try { $response = Paystack::getPaymentData(); $amount = $response['data']['requested_amount'] / 100; $transactionId = $response['data']['id']; DB::beginTransaction(); ProductTransaction::create([ 'product_id' => $input['product_id'], 'name' => $input['name'], 'email' => $input['email'], 'phone' => $input['phone'], 'address' => $input['address'], 'currency_id' => $currencyId, 'meta' => json_encode($response), 'type' => $input['payment_method'], 'transaction_id' => $transactionId, 'amount' => $amount, ]); $orderMailData = [ 'user_name' => $product->vcard->user->full_name, 'customer_name' => $input['name'], 'product_name' => $product->name, 'product_price' => $product->price, 'phone' => $input['phone'], 'address' => $input['address'], 'payment_type' => __('messages.paystack'), 'order_date' => Carbon::now()->format('d M Y'), ]; if (getUserSettingValue('product_order_send_mail_customer', $userId)) { Mail::to($input['email'])->send(new ProductOrderSendCustomer($orderMailData)); } if (getUserSettingValue('product_order_send_mail_user', $userId)) { Mail::to($product->vcard->user->email)->send(new ProductOrderSendUser($orderMailData)); } $vcard = $product->vcard; App::setLocale(Session::get('languageChange_' . $vcard->url_alias)); session()->forget('input'); DB::commit(); return redirect(route('showProducts', [$vcard->id, $vcard->url_alias, __('messages.placeholder.product_purchase')])); } catch (\Exception $ex) { print_r($ex->getMessage()); } } } public function productBuy($input, $product) { $userId = $product->vcard->user->id; $clientId = getUserSettingValue('paystack_key', $userId); $clientSecret = getUserSettingValue('paystack_secret', $userId); config([ 'paystack.publicKey' => $clientId, 'paystack.secretKey' => $clientSecret, 'paystack.paymentUrl' => "https://api.paystack.co", ]); if (empty($product->currency_id)) { $product->currency_id = getUserSettingValue('currency_id', $userId); } $currencyCode = Currency::whereId($product->currency_id)->first()->currency_code; $email = $input['email']; $productId = $product->id; $productAmount = $product->price; try { $data = [ 'email' => $email, 'orderID' => $productId, 'amount' => $productAmount * 100, 'quantity' => 1, 'currency' => $currencyCode, 'reference' => Paystack::genTranxRef(), 'metadata' => json_encode(['product_id' => $productId]), ]; $result = Paystack::getAuthorizationUrl($data)->redirectNow(); session()->put(['input' => $input]); session()->put(['vcard_user_id' => $userId]); return $result; } catch (\Exception $e) { Flash::error(__('messages.setting.paystack_credential')); return Redirect()->back(); } } } PK8\=|y<y<*Controllers/SubscriptionController.php.baknu[subscriptionRepo = $subscriptionRepo; } /** * @return Application|Factory|View */ public function index(Request $request): \Illuminate\View\View { $currentPlan = getCurrentSubscription(); $days = $remainingDay = ''; if ($currentPlan->ends_at > Carbon::now()) { $days = Carbon::parse($currentPlan->ends_at)->diffInDays(); $remainingDay = $days . ' Days'; } if ($days >= 30 && $days <= 365) { $remainingDay = ''; $months = floor($days / 30); $extraDays = $days % 30; if ($extraDays > 0) { $remainingDay .= $months . ' Month ' . $extraDays . ' Days'; } else { $remainingDay .= $months . ' Month '; } } if ($days >= 365) { $remainingDay = ''; $years = floor($days / 365); $extraMonths = floor($days % 365 / 30); $extraDays = floor($days % 365 % 30); if ($extraMonths > 0 && $extraDays < 1) { $remainingDay .= $years . ' Years ' . $extraMonths . ' Month '; } elseif ($extraDays > 0 && $extraMonths < 1) { $remainingDay .= $years . ' Years ' . $extraDays . ' Days'; } elseif ($years > 0 && $extraDays > 0 && $extraMonths > 0) { $remainingDay .= $years . ' Years ' . $extraMonths . ' Month ' . $extraDays . ' Days'; } else { $remainingDay .= $years . ' Years '; } } return view('subscription.index', compact('currentPlan', 'remainingDay')); } public function choosePaymentType($planId, $context = null, $fromScreen = null) { $currentSubscription = getCurrentSubscription(); $customSelectId = request()->get('customFieldId'); $customField = PlanCustomField::find($customSelectId); if ($customField) { if (!$currentSubscription->isExpired()) { if ((checkIfPlanIsInTrial($currentSubscription) || !checkIfPlanIsInTrial($currentSubscription)) && $customField->custom_vcard_price <= 0) { Flash::error(__('messages.placeholder.cannot_switch_to_zero')); return Redirect::back(); } } } $cashPaymentPlan = Subscription::where('tenant_id', Auth::user()->tenant_id)->where('payment_type', 'cash')->where('status', Subscription::PENDING)->first(); if ($cashPaymentPlan) { Flash::error(__('messages.wait_for_apporove_of_cash_payment_by_admin')); return Redirect::back(); } // code for checking the current plan is active or not, if active then it should not allow to choose that plan $subscriptionsPricingPlan = Plan::findOrFail($planId); $paymentTypes = getPaymentGateway(); return view('subscription.payment_for_plan', compact('subscriptionsPricingPlan', 'paymentTypes', 'customSelectId', 'customField')); } /** * @return Application|Factory|View */ public function upgrade() { $cashPaymentPlan = Subscription::where('tenant_id', Auth::user()->tenant_id)->where('payment_type', 'cash')->where('status', Subscription::PENDING)->first(); if ($cashPaymentPlan && !$cashPaymentPlan->isExpired()) { Flash::error(__('messages.wait_for_apporove_of_cash_payment_by_admin')); return Redirect::back(); } $plans = Plan::with(['currency', 'planFeature'])->whereStatus(Plan::IS_ACTIVE)->whereIsDefault(Plan::IS_DEACTIVE)->get(); $monthlyPlans = $plans->where('frequency', Plan::MONTHLY); $yearlyPlans = $plans->where('frequency', Plan::YEARLY); $unLimitedPlans = $plans->where('frequency', Plan::UNLIMITED); return view( 'subscription.upgrade', compact('monthlyPlans', 'yearlyPlans', 'unLimitedPlans') ); } public function setPlanZero(Plan $plan): JsonResponse { try { DB::beginTransaction(); Subscription::whereTenantId(getLogInTenantId()) ->whereIsActive(true)->update(['is_active' => false]); $expiryDate = setExpiryDate($plan); Subscription::create([ 'plan_id' => $plan->id, 'ends_at' => $expiryDate, 'status' => true, ]); DB::commit(); return $this->sendSuccess(__('messages.placeholder.subscribed_plan')); } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } public function manualPay(Request $request) { $input = $request->all(); if (isset($input['couponCodeId'])) { $couponId = $input['couponCodeId']; $coupon = CouponCode::find($couponId); if ($coupon) { if ($coupon->coupon_limit != null) { $newLimit = $coupon->coupon_limit_left - 1; CouponCode::where('id', $couponId)->update(['coupon_limit_left' => $newLimit]); } } } if (isset($input['attachment']) && $input['attachment']->getClientMimeType() == 'text/php') { return $this->sendError('PHP file is not valid type for attachment'); } $this->subscriptionRepo->manageSubscription($input); $data = Subscription::whereTenantId(getLogInTenantId())->orderBy('created_at', 'desc')->first(); Subscription::whereId($data->id)->update(['payment_type' => 'Cash', 'status' => Subscription::PENDING]); $is_on = Setting::where('key', 'is_manual_payment_guide_on')->first(); $manual_payment_guide_step = Setting::where('key', 'manual_payment_guide')->first(); $user = \Illuminate\Support\Facades\Auth::user(); $super_admin_data = [ 'super_admin_msg' => $user->full_name . ' created request for payment of ' . $data->plan->currency->currency_icon . '' . $data->payable_amount, 'attachment' => $data->attachment ?? '', 'notes' => $data->notes ?? '', 'id' => $data->id, ]; if ($is_on['value'] == '1') { Mail::to($user['email']) ->send(new ManualPaymentGuideMail($manual_payment_guide_step['value'], $user)); $email = getSuperAdminSettingValue('email'); Mail::to($email) ->send(new SuperAdminManualPaymentMail($super_admin_data, $email)); } return $this->sendSuccess(__('messages.placeholder.subscribed_plan_wait')); } public function downloadAttachment($id): \Illuminate\Http\Response|Application|\Illuminate\Contracts\Routing\ResponseFactory { $subscription = Subscription::findOrFail($id); [$file, $headers] = $this->subscriptionRepo->downloadAttachment($subscription); return response($file, 200, $headers); } public function downloadMailAttachment($id): BinaryFileResponse { $subscription = Subscription::whereTenantId(getLogInTenantId())->findOrFail($id); $headers = [ 'Content-Type' => $subscription->media[0]->mime_type, 'Content-Description' => 'File Transfer', 'Content-Disposition' => "attachment; filename={$subscription->media[0]->file_name}", 'filename' => $subscription->media[0]->file_name, ]; return response()->download($subscription->media[0]->getPath(), $subscription->media[0]->file_name, $headers); } /** * @return Application|Factory|View */ public function cashPlan(): \Illuminate\View\View { return view('sadmin.planPyment.index'); } public function planStatus(Request $request): JsonResponse { if ($request->status == Subscription::ACTIVE) { $user = User::whereTenantId($request->tenant_id)->latest()->first(); if ($user) { // send mail notification $subscription = Subscription::findOrFail($request->id); $planName = $subscription->plan->name; $paymentAmount = $subscription->payable_amount; $userEmail = $user->email; $planName = $subscription->plan->name; $firstName = $user->first_name; $lastName = $user->last_name; $emailData = [ 'subscriptionId' => $request->id, 'subscriptionAmount' => $paymentAmount, 'transactionID' => $request->session_id, 'planName' => $planName, 'first_name' => $firstName, 'last_name' => $lastName, ]; Mail::to($userEmail)->send(new SubscriptionPaymentSuccessMail($emailData)); $affiliateAmount = getSuperAdminSettingValue('affiliation_amount'); $affiliateAmountType = getSuperAdminSettingValue('affiliation_amount_type'); if ($affiliateAmountType == 1) { AffiliateUser::where('user_id', $user->id)->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $affiliateAmount, 'is_verified' => 1]); } else if ($affiliateAmountType == 2) { $amount = $paymentAmount * $affiliateAmount / 100; AffiliateUser::where('user_id', $user->id)->where('amount', 0)->withoutGlobalScopes()->update(['amount' => $amount, 'is_verified' => 1]); } } Subscription::whereTenantId($request->tenant_id)->where('id', '!=', $request->id)->where('status', '!=', Subscription::REJECT)->update(['status' => Subscription::INACTIVE]); } Subscription::where('id', $request->id)->update([ 'status' => $request->status, ]); $user = User::whereTenantId($request->tenant_id)->first(); manageVcards($user); return $this->sendSuccess(__('messages.placeholder.payment_received')); } public function purchaseSubscription(Request $request) { $input = $request->all(); $result = $this->subscriptionRepo->purchaseSubscriptionForStripe($input); // returning from here if the plan is free. if (isset($result['status']) && $result['status'] == true) { manageVcards(); return $this->sendSuccess($result['subscriptionPlan']->name . ' ' . __('messages.subscription.has_been_subscribed')); } else { if (isset($result['status']) && $result['status'] == false) { return $this->sendError(__('messages.placeholder.cannot_switch_to_zero')); } } return $this->sendResponse($result, 'Session created successfully.'); } /** * @return Application|Factory|View * * @throws ApiErrorException */ public function paymentSuccess(Request $request): \Illuminate\View\View { AffiliateUser::whereUserId(getLogInUserId())->withoutGlobalScopes() ->update(['is_verified' => 1]); /** @var SubscriptionRepository $subscriptionRepo */ $subscriptionRepo = app(SubscriptionRepository::class); $subscription = $subscriptionRepo->paymentUpdate($request); manageVcards(); Flash::success($subscription->plan->name . ' ' . __('messages.subscription.has_been_subscribed')); return view('sadmin.plans.payment.paymentSuccess'); } public function handleFailedPayment(): \Illuminate\View\View { $subscriptionPlanId = session('subscription_plan_id'); /** @var SubscriptionRepository $subscriptionRepo */ $subscriptionRepo = app(SubscriptionRepository::class); $subscriptionRepo->paymentFailed($subscriptionPlanId); Flash::error(__('messages.placeholder.unable_to_process_payment')); return view('sadmin.plans.payment.paymentcancel'); } /** * @return Application|Factory|View */ public function userSubscribedPlan(): \Illuminate\View\View { return view('sadmin.subscriptionPlan.index'); } public function userSubscribedPlanEdit(Request $request): JsonResponse { $subscription = Subscription::with([ 'plan:id,name,currency_id', 'tenant.user', 'plan.currency', ])->whereId($request->id)->first(); $paymentTypeName = Subscription::PAYMENT_GATEWAY[$subscription->payment_type] ?? ''; return $this->sendResponse($subscription, $paymentTypeName, 'Subscription successfully retrieved.'); } public function userSubscribedPlanUpdate(Request $request): JsonResponse { $endDate = $request->end_date; if (empty($request->end_date)) { return $this->sendError(__('messages.subscription.end_date_required')); } $endDate = $request->end_date; $format = getSuperAdminSettingValue('datetime_method'); $formattedDate = ($format == 1) ? Carbon::createFromFormat('d M, Y', $endDate)->format('Y-m-d H:i:s') : (($format == 2) ? Carbon::createFromFormat('M d, Y', $endDate)->format('Y-m-d H:i:s') : (($format == 3) ? Carbon::createFromFormat('d/m/Y', $endDate)->format('Y-m-d H:i:s') : (($format == 4) ? Carbon::createFromFormat('Y/m/d', $endDate)->format('Y-m-d H:i:s') : (($format == 5) ? Carbon::createFromFormat('m/d/Y', $endDate)->format('Y-m-d H:i:s') : (($format == 6) ? Carbon::createFromFormat('Y-m-d', $endDate)->format('Y-m-d H:i:s') : Carbon::parse($endDate)->format('Y-m-d H:i:s') ) ) ) ) ); $subscription = Subscription::where('id', $request->id)->update([ 'ends_at' => $formattedDate, 'status' => Subscription::ACTIVE, ]); return $this->sendResponse($subscription, __('messages.placeholder.subscription_date_updated')); } } PK8\]s Controllers/iframeController.phpnu[iframeRepo = $iframeRepo; } public function store(CreateiframeRequest $request): JsonResponse { $input = $request->all(); $iframe = $this->iframeRepo->store($input); return $this->sendResponse($iframe, __('messages.flash.iframe_create')); } public function edit(Iframe $iframe): JsonResponse { return $this->sendResponse($iframe, 'iframe successfully retrieved.'); } public function update(UpdateiframeRequest $request, Iframe $iframe): JsonResponse { $input = $request->all(); $iframe = $this->iframeRepo->update($input, $iframe->id); return $this->sendResponse($iframe, __('messages.flash.iframe_update')); } public function destroy(Iframe $iframe): JsonResponse { $iframe->delete(); return $this->sendSuccess('messages.flash.iframe_delete'); } } PK8\)h h #Controllers/AdminUserController.phpnu[userRepo = $userRepository; } public function index(): \Illuminate\View\View { return view('admin_users.index'); } /** * @return Application|Factory|View */ public function show($id): \Illuminate\View\View { $user = User::find($id); if (! empty($user) && $user->getRoleNames()[0] == 'super_admin') { return view('admin_users.show', compact('user')); } abort(404); } /** * @return Application|Factory|View */ public function create(): \Illuminate\View\View { return view('admin_users.create'); } /** * @return Application|RedirectResponse|Redirector */ public function store(CreateUserRequest $request): RedirectResponse { $input = $request->all(); $input['role'] = Role::ROLE_SUPER_ADMIN; $this->userRepo->store($input); Flash::success(__('messages.admin.admin_created_successfully')); return redirect(route('admins.index')); } /** * @return Application|Factory|View */ public function edit($id): \Illuminate\View\View { $user = User::find($id); return view('admin_users.edit', compact('user')); } /** * @return Application|RedirectResponse|Redirector */ public function update(UpdateUserRequest $request, $id): RedirectResponse { $user = User::findOrFail($id); $this->userRepo->update($request->all(), $user); Flash::success(__('messages.admin.admin_updated_successfully')); return redirect(route('admins.index')); } /** * @param User $user * @return mixed */ public function destroy(User $admin) { $adminDate = $admin->created_at; $loggedInAdminDate = Auth::user()->created_at; if ($loggedInAdminDate > $adminDate) { return $this->sendError(__('messages.admin.not_allowed_to_access')); } Vcard::where('tenant_id', $admin->tenant_id)->delete(); MultiTenant::where('id', $admin->tenant_id)->delete(); $admin->delete(); return $this->sendSuccess(__('messages.admin.admin_delete_successfully')); } } PK8\xooVVMiddleware/FreshInstall.phpnu[alreadyInstalled()) { try { DB::connection()->getPdo(); } catch (\Exception $e) { return redirect(route('installs')); } } $response = $next($request); return $response; } public function alreadyInstalled() { return file_exists(storage_path('installed')); } } PK8\Gf Middleware/ValidateSignature.phpnu[ */ protected $except = [ // 'fbclid', // 'utm_campaign', // 'utm_content', // 'utm_medium', // 'utm_source', // 'utm_term', ]; } PK8\40dMiddleware/TrustProxies.phpnu[|string|null */ protected $proxies; /** * The proxy header mappings. * * @var int */ protected $headers = Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_PREFIX | Request::HEADER_X_FORWARDED_AWS_ELB; /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\HttpException */ public function handle(Request $request, Closure $next) { $request::setTrustedProxies([], $this->getTrustedHeaderNames()); $this->setTrustedProxyIpAddresses($request); return $next($request); } /** * Sets the trusted proxies on the request. * * @param \Illuminate\Http\Request $request * @return void */ protected function setTrustedProxyIpAddresses(Request $request) { $trustedIps = $this->proxies() ?: config('trustedproxy.proxies'); if ($trustedIps === '*' || $trustedIps === '**') { return $this->setTrustedProxyIpAddressesToTheCallingIp($request); } $trustedIps = is_string($trustedIps) ? array_map('trim', explode(',', $trustedIps)) : $trustedIps; if (is_array($trustedIps)) { return $this->setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps); } } /** * Specify the IP addresses to trust explicitly. * * @param \Illuminate\Http\Request $request * @param array $trustedIps * @return void */ protected function setTrustedProxyIpAddressesToSpecificIps(Request $request, array $trustedIps) { $request->setTrustedProxies($trustedIps, $this->getTrustedHeaderNames()); } /** * Set the trusted proxy to be the IP address calling this servers. * * @param \Illuminate\Http\Request $request * @return void */ protected function setTrustedProxyIpAddressesToTheCallingIp(Request $request) { $request->setTrustedProxies([$request->server->get('REMOTE_ADDR')], $this->getTrustedHeaderNames()); } /** * Retrieve trusted header name(s), falling back to defaults if config not set. * * @return int A bit field of Request::HEADER_*, to set which headers to trust from your proxies. */ protected function getTrustedHeaderNames() { if (is_int($this->headers)) { return $this->headers; } return match ($this->headers) { 'HEADER_X_FORWARDED_AWS_ELB' => Request::HEADER_X_FORWARDED_AWS_ELB, 'HEADER_FORWARDED' => Request::HEADER_FORWARDED, 'HEADER_X_FORWARDED_FOR' => Request::HEADER_X_FORWARDED_FOR, 'HEADER_X_FORWARDED_HOST' => Request::HEADER_X_FORWARDED_HOST, 'HEADER_X_FORWARDED_PORT' => Request::HEADER_X_FORWARDED_PORT, 'HEADER_X_FORWARDED_PROTO' => Request::HEADER_X_FORWARDED_PROTO, 'HEADER_X_FORWARDED_PREFIX' => Request::HEADER_X_FORWARDED_PREFIX, default => Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_PREFIX | Request::HEADER_X_FORWARDED_AWS_ELB, }; } /** * Get the trusted proxies. * * @return array|string|null */ protected function proxies() { return $this->proxies; } } PK8\UIMiddleware/VerifyCsrfToken.phpnu[app = $app; } /** * Get the host patterns that should be trusted. * * @return array */ abstract public function hosts(); /** * Handle the incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return \Illuminate\Http\Response */ public function handle(Request $request, $next) { if ($this->shouldSpecifyTrustedHosts()) { Request::setTrustedHosts(array_filter($this->hosts())); } return $next($request); } /** * Determine if the application should specify trusted hosts. * * @return bool */ protected function shouldSpecifyTrustedHosts() { return ! $this->app->environment('local') && ! $this->app->runningUnitTests(); } /** * Get a regular expression matching the application URL and all of its subdomains. * * @return string|null */ protected function allSubdomainsOfApplicationUrl() { if ($host = parse_url($this->app['config']->get('app.url'), PHP_URL_HOST)) { return '^(.+\.)?'.preg_quote($host).'$'; } } } PK8\ckk&Middleware/RedirectIfAuthenticated.phpnu[check()) { return Redirect::to(getDashboardURL()); } } return $next($request); } } PK8\qyMiddleware/Authenticate.phpnu[authenticate($request, $guards); App::setLocale(Auth::user()->language); return $next($request); } /** * Get the path the user should be redirected to when they are not authenticated. */ protected function redirectTo(Request $request): ?string { if (! $request->expectsJson()) { return route('login'); } } } PK8\z*"Middleware/CheckVcardAnalytics.phpnu[where('tenant_id', getLogInTenantId())->pluck('id')->toArray(); if (in_array($request->vcard->id, $vcards)) { return $next($request); } else { abort('404'); } } } PK8\m8+Middleware/SetLanguage.phpnu[language); } else { App::setLocale(getSuperAdminSettingValue('default_language')); } } else { App::setLocale($localeLanguage); } return $next($request); } } PK8\`f f Middleware/DetectRegion.phpnuIw [ 'currency' => 'EUR', 'currency_symbol' => '', 'locale' => 'pt_PT', 'country' => 'PT', 'payment_gateway' => 'ifthen', 'stripe_key' => 'STRIPE_KEY_PT', 'stripe_secret' => 'STRIPE_SECRET_PT', 'flag' => 'PT', 'name' => 'Portugal', ], 'card.aosegundo.com.br' => [ 'currency' => 'BRL', 'currency_symbol' => 'R$', 'locale' => 'pt_BR', 'country' => 'BR', 'payment_gateway' => 'asaas', 'stripe_key' => 'STRIPE_KEY_BR', 'stripe_secret' => 'STRIPE_SECRET_BR', 'flag' => 'BR', 'name' => 'Brasil', ], 'cardfyz.com' => [ 'currency' => 'EUR', 'currency_symbol' => '', 'locale' => 'pt_BR', 'country' => 'BR', 'payment_gateway' => 'stripe_br', 'stripe_key' => 'STRIPE_KEY', 'stripe_secret' => 'STRIPE_SECRET', 'flag' => 'BR', 'name' => 'Card Ao Segundo (legado)', ], ]; public function handle(Request $request, Closure $next): Response { $host = $request->getHost(); $region = $this->regions[$host] ?? $this->regions['cardfyz.com']; // Determinar gateway activo baseado no .env (dinamico - seguro dentro do handle) if ($host === 'card.aosegundo.pt') { $activeGateway = env('GATEWAY_PT', $region['payment_gateway']); } elseif ($host === 'card.aosegundo.com.br') { $activeGateway = env('GATEWAY_BR', $region['payment_gateway']); } else { $activeGateway = env('GATEWAY_BR', $region['payment_gateway']); } // Injectar configuracoes regionais em runtime config([ 'app.currency' => $region['currency'], 'app.currency_symbol' => $region['currency_symbol'], 'app.locale' => $region['locale'], 'app.country' => $region['country'], 'app.payment_gateway' => $activeGateway, 'app.region_flag' => $region['flag'], 'app.region_name' => $region['name'], 'app.url' => 'https://' . $host, ]); // Partilhar com todas as views Blade view()->share('appRegion', $region); view()->share('appCurrency', $region['currency']); view()->share('appCountry', $region['country']); view()->share('currentDomain', $host); view()->share('activeGateway', $activeGateway); return $next($request); } } PK8\YzVZZMiddleware/checkVcardEdit.phpnu[vcard->id; $tenantId = getLogInUser()->tenant_id; $VcardId = Vcard::whereTenantId($tenantId)->pluck('id')->toArray(); if (in_array($requestVcardId, $VcardId)) { return $next($request); } else { return Response::json(ResponseUtil::makeError('Seems, you are not allowed to access this record."'), 422); } } } PK8\*!&&Middleware/EncryptCookies.phpnu[is_active || ! isset($user->email_verified_at))) { $isActive = $user->is_active; Auth::logout(); return redirect(route('login'))->withErrors(! $isActive ? 'Your account is not active. Please contact to administrator.' : 'Your email is not verified.'); } return $response; } } PK8\%nii Middleware/CheckVcardEnquiry.phpnu[where('tenant_id', getLogInTenantId())->pluck('id')->toArray(); if ($request->vcard) { if (in_array($request->vcard, $vcards)) { return $next($request); } else { abort('404'); } } if (! is_numeric($request->enquiry)) { if ($request->appointment) { $appointment = ScheduleAppointment::whereIn('vcard_id', $vcards)->pluck('id')->toArray(); if (in_array($request->appointment->id, $appointment)) { return $next($request); } else { abort('404'); } } $enquiry = Enquiry::whereIn('vcard_id', $vcards)->pluck('id')->toArray(); if (in_array($request->enquiry->id, $enquiry)) { return $next($request); } else { return Response::json(ResponseUtil::makeError('Seems, you are not allowed to access this record."'), 422); } } else { $enquiry = Enquiry::whereIn('vcard_id', $vcards)->pluck('id')->toArray(); if (in_array($request->enquiry, $enquiry)) { return $next($request); } else { abort('404'); } } } } PK8\Lv??Middleware/XSS.phpnu[all(); array_walk_recursive($input, function (&$input) { $input = (is_null($input)) ? null : Purifier::clean(html_entity_decode($input)); }); $request->merge($input); return $next($request); } } PK8\ Middleware/Analytics.phpnu[root(), '', $request->url()) ?: '/'; $urlAlias = Route::current()->parameters['alias']; $vcardId = Vcard::select('id')->where('url_alias', $urlAlias)->pluck('id')->toArray(); if (! $vcardId) { return abort('404'); } $agent = new Agent(); if (! $agent->isRobot()) { $agent->setUserAgent($request->headers->get('user-agent')); $agent->setHttpHeaders($request->headers); $sessionExists = Analytic::where('session', $request->session()->getId())->where('vcard_id', $vcardId[0])->exists(); if ($sessionExists) { return $next($request); } $items = implode($agent->languages()); $lang = substr($items, 0, 2); $ip = Location::get($request->ip()); $country = $ip ? $ip->countryName : ''; Analytic::create([ 'session' => $request->session()->getId(), 'vcard_id' => $vcardId[0], 'uri' => $uri, 'source' => $request->headers->get('referer'), 'country' => $country, 'browser' => $agent->browser() ?? null, 'device' => $agent->deviceType(), 'operating_system' => $agent->platform(), 'ip' => $request->ip(), 'language' => $lang, 'meta' => json_encode(Location::get($request->ip())), ]); return $next($request); } return $next($request); } } PK8\P*rr'Middleware/languageChangeMiddleware.phpnu[alias); if (! empty($localeLanguage)) { setLocalLang($localeLanguage); return $next($request); } setLocalLang(getVcardDefaultLanguage()); return $next($request); } } PK8\S迯22%Middleware/CheckVcardSubscription.phpnu[parameters['alias']; $vcard = Vcard::select(['id', 'tenant_id'])->whereUrlAlias($urlAlias)->firstOrFail(); /** @var User $user */ $user = User::whereTenantId($vcard->tenant_id)->with('subscription')->first(); if ($user->subscription->ends_at > Carbon::now()->format('Y-m-d H:i:s')) { return $request; } return abort(404); } } PK8\glaa/Middleware/PreventRequestsDuringMaintenance.phpnu[where('status', Subscription::ACTIVE) ->where('tenant_id', getLogInUser()->tenant_id) ->first(); if (! $subscription) { Vcard::where('tenant_id', getLogInUser()->tenant_id)->update([ 'status' => 0, ]); return redirect(route('subscription.upgrade')) ->withErrors(__('messages.subscription.subscription_expired')); } if ($subscription->isExpired()) { Vcard::where('tenant_id', getLogInUser()->tenant_id)->update([ 'status' => 0, ]); return redirect(route('subscription.upgrade')) ->withErrors(__('messages.subscription.subscription_expired')); } return $request; } } PK8\7$Middleware/MultiTenantMiddleware.phpnu[tenancy = $tenancy; $this->resolver = $resolver; } /** * Handle an incoming request. */ public function handle(Request $request, Closure $next): Response { $tenant = Auth::user()->tenant_id; return $this->initializeTenancy( $request, $next, $tenant ); } } PK8\~}}Middleware/TrimStrings.phpnu[ */ protected $except = [ 'current_password', 'password', 'password_confirmation', ]; } PK\Controllers/.gitkeepnu[PK\[6Controllers/TestController.phpnu[expectsJson()) { return new JsonResponse(status: 204); } return new Response(status: 204); } } PK]\0֬!Middleware/CheckForAnyAbility.phpnu[user() || ! $request->user()->currentAccessToken()) { throw new AuthenticationException; } foreach ($abilities as $ability) { if ($request->user()->tokenCan($ability)) { return $next($request); } } throw new MissingAbilityException($abilities); } } PK]\a; 0Middleware/EnsureFrontendRequestsAreStateful.phpnu[configureSecureCookieSessions(); return (new Pipeline(app()))->send($request)->through( static::fromFrontend($request) ? $this->frontendMiddleware() : [] )->then(function ($request) use ($next) { return $next($request); }); } /** * Configure secure cookie sessions. * * @return void */ protected function configureSecureCookieSessions() { config([ 'session.http_only' => true, 'session.same_site' => 'lax', ]); } /** * Get the middleware that should be applied to requests from the "frontend". * * @return array */ protected function frontendMiddleware() { $middleware = array_values(array_filter(array_unique([ config('sanctum.middleware.encrypt_cookies', \Illuminate\Cookie\Middleware\EncryptCookies::class), \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, config('sanctum.middleware.validate_csrf_token'), config('sanctum.middleware.verify_csrf_token', \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class), config('sanctum.middleware.authenticate_session'), ]))); array_unshift($middleware, function ($request, $next) { $request->attributes->set('sanctum', true); return $next($request); }); return $middleware; } /** * Determine if the given request is from the first-party application frontend. * * @param \Illuminate\Http\Request $request * @return bool */ public static function fromFrontend($request) { $domain = $request->headers->get('referer') ?: $request->headers->get('origin'); if (is_null($domain)) { return false; } $domain = Str::replaceFirst('https://', '', $domain); $domain = Str::replaceFirst('http://', '', $domain); $domain = Str::endsWith($domain, '/') ? $domain : "{$domain}/"; $stateful = array_filter(config('sanctum.stateful', [])); return Str::is(Collection::make($stateful)->map(function ($uri) { return trim($uri).'/*'; })->all(), $domain); } } PK]\KKMiddleware/CheckScopes.phpnu[handle($request, $next, ...$scopes); } catch (\Laravel\Sanctum\Exceptions\MissingAbilityException $e) { throw new MissingScopeException($e->abilities()); } } } PK]\HFMiddleware/CheckAbilities.phpnu[user() || ! $request->user()->currentAccessToken()) { throw new AuthenticationException; } foreach ($abilities as $ability) { if (! $request->user()->tokenCan($ability)) { throw new MissingAbilityException($ability); } } return $next($request); } } PK]\8i i "Middleware/AuthenticateSession.phpnu[auth = $auth; } /** * Handle an incoming request. * * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next * * @throws \Illuminate\Auth\AuthenticationException */ public function handle(Request $request, Closure $next): Response { if (! $request->hasSession() || ! $request->user()) { return $next($request); } $guards = Collection::make(Arr::wrap(config('sanctum.guard'))) ->mapWithKeys(fn ($guard) => [$guard => $this->auth->guard($guard)]) ->filter(fn ($guard) => $guard instanceof SessionGuard); $shouldLogout = $guards->filter( fn ($guard, $driver) => $request->session()->has('password_hash_'.$driver) )->filter( fn ($guard, $driver) => $request->session()->get('password_hash_'.$driver) !== $request->user()->getAuthPassword() ); if ($shouldLogout->isNotEmpty()) { $shouldLogout->each->logoutCurrentDevice(); $request->session()->flush(); throw new AuthenticationException('Unauthenticated.', [...$shouldLogout->keys()->all(), 'sanctum']); } return tap($next($request), function () use ($request, $guards) { if (! is_null($request->user())) { $this->storePasswordHashInSession($request, $guards->keys()->first()); } }); } /** * Store the user's current password hash in the session. * * @param \Illuminate\Http\Request $request * @param string $guard * @return void */ protected function storePasswordHashInSession($request, string $guard) { if (! $request->user()) { return; } $request->session()->put([ "password_hash_{$guard}" => $request->user()->getAuthPassword(), ]); } } PK]\EoQPXXMiddleware/CheckForAnyScope.phpnu[handle($request, $next, ...$scopes); } catch (\Laravel\Sanctum\Exceptions\MissingAbilityException $e) { throw new MissingScopeException($e->abilities()); } } } PK-\C!!Requests/error_lognu[[15-Jul-2026 02:20:16 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/AddCouponCodeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/AddCouponCodeRequest.php on line 7 [15-Jul-2026 02:20:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateAboutUsRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateAboutUsRequest.php on line 8 [15-Jul-2026 02:20:21 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateBannerRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateBannerRequest.php on line 8 [15-Jul-2026 02:20:23 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateBlogRequest.php on line 8 [15-Jul-2026 02:20:25 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCityRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCityRequest.php on line 8 [15-Jul-2026 02:20:27 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateContactEnquiryRequest.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateContactEnquiryRequest.php on line 10 [15-Jul-2026 02:20:29 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateContactRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateContactRequest.php on line 8 [15-Jul-2026 02:20:32 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCountryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCountryRequest.php on line 8 [15-Jul-2026 04:41:57 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php on line 8 [15-Jul-2026 04:41:57 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php on line 8 [15-Jul-2026 04:41:58 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php on line 7 [15-Jul-2026 04:41:59 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php on line 7 [15-Jul-2026 04:42:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php on line 7 [15-Jul-2026 04:42:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php on line 8 [15-Jul-2026 04:42:01 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php on line 7 [15-Jul-2026 04:42:01 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php on line 7 [15-Jul-2026 04:42:02 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php on line 8 [15-Jul-2026 04:42:02 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php on line 8 [15-Jul-2026 04:42:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php on line 7 [15-Jul-2026 04:42:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php on line 8 [15-Jul-2026 04:42:04 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php on line 8 [15-Jul-2026 04:42:04 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php on line 8 [15-Jul-2026 04:42:05 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php on line 8 [15-Jul-2026 04:42:06 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php on line 8 [15-Jul-2026 04:42:06 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php on line 8 [15-Jul-2026 04:42:07 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php on line 8 [15-Jul-2026 04:42:07 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php on line 8 [15-Jul-2026 04:42:08 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php on line 8 [15-Jul-2026 04:42:08 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php on line 8 [15-Jul-2026 04:42:09 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php on line 8 [15-Jul-2026 04:42:09 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php on line 8 [15-Jul-2026 04:42:10 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php on line 8 [15-Jul-2026 04:42:11 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php on line 8 [15-Jul-2026 04:42:11 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php on line 8 [15-Jul-2026 04:42:11 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php on line 8 [15-Jul-2026 04:42:12 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php on line 8 [15-Jul-2026 04:42:13 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php on line 8 [15-Jul-2026 04:42:13 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php on line 8 [15-Jul-2026 04:42:14 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php on line 8 [15-Jul-2026 04:42:15 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php on line 8 [15-Jul-2026 04:42:15 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php on line 9 [15-Jul-2026 04:42:15 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php on line 8 [15-Jul-2026 04:42:16 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php on line 9 [15-Jul-2026 04:42:16 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php on line 8 [15-Jul-2026 04:42:17 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php on line 9 [15-Jul-2026 04:42:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php on line 9 [15-Jul-2026 04:42:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php on line 8 [15-Jul-2026 04:42:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php on line 8 [15-Jul-2026 04:42:20 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php on line 8 [15-Jul-2026 04:42:20 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php on line 9 [15-Jul-2026 04:42:20 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php on line 9 [15-Jul-2026 04:42:21 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php on line 8 [15-Jul-2026 04:42:21 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php on line 8 [15-Jul-2026 04:42:22 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php on line 8 [15-Jul-2026 04:42:23 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php on line 8 [15-Jul-2026 04:42:23 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php on line 8 [15-Jul-2026 04:42:23 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php on line 8 [15-Jul-2026 04:42:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php on line 8 [15-Jul-2026 04:42:25 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php on line 8 [15-Jul-2026 04:42:25 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php on line 8 [15-Jul-2026 04:42:26 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php on line 8 [15-Jul-2026 04:42:26 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php on line 8 [15-Jul-2026 04:42:26 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php on line 8 [15-Jul-2026 04:42:28 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php on line 8 [15-Jul-2026 04:42:28 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php on line 8 [15-Jul-2026 05:56:51 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/ProductBuyRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/ProductBuyRequest.php on line 8 [15-Jul-2026 05:56:53 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateBlogRequest.php on line 8 [15-Jul-2026 05:56:54 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateChangePasswordRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateChangePasswordRequest.php on line 7 [15-Jul-2026 05:56:56 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCityRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCityRequest.php on line 8 [15-Jul-2026 05:56:58 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCountryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCountryRequest.php on line 8 [15-Jul-2026 05:56:59 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCouponCodeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCouponCodeRequest.php on line 7 [15-Jul-2026 05:57:01 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCustomLinkRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCustomLinkRequest.php on line 8 [15-Jul-2026 05:57:02 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFeatureRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFeatureRequest.php on line 8 [15-Jul-2026 05:57:04 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontCmsRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontCmsRequest.php on line 7 [15-Jul-2026 05:57:05 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontTestimonialRequest.php on line 8 [15-Jul-2026 05:57:07 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateGalleryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateGalleryRequest.php on line 8 [15-Jul-2026 05:57:08 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateInstagramEmbedRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateInstagramEmbedRequest.php on line 8 [15-Jul-2026 05:57:10 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateLanguageRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateLanguageRequest.php on line 7 [15-Jul-2026 05:57:11 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateMailSettingRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateMailSettingRequest.php on line 8 [15-Jul-2026 05:57:13 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateNfcCardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateNfcCardRequest.php on line 8 [15-Jul-2026 05:57:15 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdatePaymentRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdatePaymentRequest.php on line 8 [15-Jul-2026 05:57:16 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdatePlanRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdatePlanRequest.php on line 8 [15-Jul-2026 05:57:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateProductRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateProductRequest.php on line 8 [15-Jul-2026 05:57:20 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateRoleRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateRoleRequest.php on line 8 [15-Jul-2026 05:57:21 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateSettingRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateSettingRequest.php on line 9 [15-Jul-2026 05:57:23 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateStateRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateStateRequest.php on line 8 [15-Jul-2026 05:57:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateTestimonialRequest.php on line 8 [15-Jul-2026 05:57:26 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserPasswordRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserPasswordRequest.php on line 7 [15-Jul-2026 23:54:43 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php on line 7 [15-Jul-2026 23:55:38 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php on line 8 [15-Jul-2026 23:56:41 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php on line 8 [15-Jul-2026 23:57:47 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontTestimonialRequest.php on line 8 [15-Jul-2026 23:58:52 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php on line 8 [16-Jul-2026 00:09:17 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardBlogRequest.php on line 8 [16-Jul-2026 00:11:12 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardBlogRequest.php on line 8 [16-Jul-2026 00:50:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateInstagramEmbedRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateInstagramEmbedRequest.php on line 8 [16-Jul-2026 00:51:30 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/createWithdrawAmountRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/createWithdrawAmountRequest.php on line 7 [16-Jul-2026 00:52:34 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateChangePasswordRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateChangePasswordRequest.php on line 7 [16-Jul-2026 03:15:23 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/SendMailRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/SendMailRequest.php on line 8 [16-Jul-2026 03:16:27 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/NfcOrderRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/NfcOrderRequest.php on line 8 [16-Jul-2026 03:21:08 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php on line 9 [16-Jul-2026 03:49:12 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserSettingRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserSettingRequest.php on line 7 [16-Jul-2026 03:49:22 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCouponCodeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCouponCodeRequest.php on line 7 [16-Jul-2026 04:04:50 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php on line 8 [16-Jul-2026 04:40:17 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFeatureRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFeatureRequest.php on line 8 [16-Jul-2026 04:59:28 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php on line 8 [16-Jul-2026 04:59:28 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateTestimonialRequest.php on line 8 [16-Jul-2026 04:59:30 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCustomLinkRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCustomLinkRequest.php on line 8 [16-Jul-2026 04:59:35 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateMailSettingRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateMailSettingRequest.php on line 8 [16-Jul-2026 04:59:48 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserProfileRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserProfileRequest.php on line 9 [16-Jul-2026 05:00:31 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php on line 8 [16-Jul-2026 05:24:46 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/HomePageSettingRrequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/HomePageSettingRrequest.php on line 7 [16-Jul-2026 05:31:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/MobileRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/MobileRequest.php on line 7 [16-Jul-2026 05:56:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php on line 8 [16-Jul-2026 05:57:15 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateLanguageRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateLanguageRequest.php on line 7 [16-Jul-2026 05:58:17 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php on line 8 [16-Jul-2026 06:02:06 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateStateRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateStateRequest.php on line 8 [16-Jul-2026 06:02:51 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php on line 8 [16-Jul-2026 07:08:41 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardBlogRequest.php on line 8 [16-Jul-2026 07:08:43 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardRequest.php on line 8 [16-Jul-2026 07:08:45 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardServiceRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardServiceRequest.php on line 8 [16-Jul-2026 07:08:46 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateiframeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateiframeRequest.php on line 7 [16-Jul-2026 07:08:48 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/HomeBannerRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/HomeBannerRequest.php on line 7 [16-Jul-2026 07:08:50 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/HomePageSettingRrequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/HomePageSettingRrequest.php on line 7 [16-Jul-2026 07:08:51 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/MobileRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/MobileRequest.php on line 7 [16-Jul-2026 07:08:53 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/NfcOrderRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/NfcOrderRequest.php on line 8 [16-Jul-2026 07:08:54 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/SendMailRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/SendMailRequest.php on line 8 [16-Jul-2026 07:08:56 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserProfileRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserProfileRequest.php on line 9 [16-Jul-2026 07:08:58 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserRequest.php on line 8 [16-Jul-2026 07:08:59 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserSettingRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserSettingRequest.php on line 7 [16-Jul-2026 07:09:01 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardBlogRequest.php on line 8 [16-Jul-2026 07:09:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardRequest.php on line 8 [16-Jul-2026 07:09:04 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardServiceRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardServiceRequest.php on line 8 [16-Jul-2026 07:09:06 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateiframeRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateiframeRequest.php on line 9 [16-Jul-2026 07:09:08 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/createWithdrawAmountRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/createWithdrawAmountRequest.php on line 7 [16-Jul-2026 07:34:15 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateProductRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateProductRequest.php on line 8 [16-Jul-2026 07:35:08 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCountryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCountryRequest.php on line 8 [16-Jul-2026 07:36:13 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateGalleryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateGalleryRequest.php on line 8 [16-Jul-2026 07:37:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateContactRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateContactRequest.php on line 8 [16-Jul-2026 07:38:21 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php on line 8 [16-Jul-2026 07:39:25 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateAboutUsRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateAboutUsRequest.php on line 8 [16-Jul-2026 07:40:29 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdatePaymentRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdatePaymentRequest.php on line 8 [16-Jul-2026 07:41:31 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php on line 8 [16-Jul-2026 07:42:31 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/AddCouponCodeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/AddCouponCodeRequest.php on line 7 [16-Jul-2026 07:44:37 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateSettingRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateSettingRequest.php on line 9 [16-Jul-2026 07:53:28 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontCmsRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontCmsRequest.php on line 7 [16-Jul-2026 08:45:58 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateNfcCardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateNfcCardRequest.php on line 8 [16-Jul-2026 08:45:59 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCountryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCountryRequest.php on line 8 [16-Jul-2026 08:46:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php on line 8 [16-Jul-2026 09:08:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateContactEnquiryRequest.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateContactEnquiryRequest.php on line 10 [16-Jul-2026 10:00:25 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateiframeRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateiframeRequest.php on line 9 [16-Jul-2026 10:01:02 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateiframeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateiframeRequest.php on line 7 [16-Jul-2026 10:33:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardRequest.php on line 8 [16-Jul-2026 10:34:08 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php on line 7 [16-Jul-2026 10:35:13 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardRequest.php on line 8 [16-Jul-2026 11:45:42 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateBannerRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateBannerRequest.php on line 8 [16-Jul-2026 13:18:46 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardServiceRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardServiceRequest.php on line 8 [16-Jul-2026 13:25:43 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateRoleRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateRoleRequest.php on line 8 [16-Jul-2026 13:26:47 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php on line 8 [16-Jul-2026 13:27:50 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserRequest.php on line 8 [16-Jul-2026 13:28:51 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCityRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCityRequest.php on line 8 [16-Jul-2026 13:29:56 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php on line 8 [16-Jul-2026 14:44:27 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php on line 8 [16-Jul-2026 15:42:27 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/HomeBannerRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/HomeBannerRequest.php on line 7 [16-Jul-2026 15:42:51 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdatePlanRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdatePlanRequest.php on line 8 [16-Jul-2026 15:43:55 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateBlogRequest.php on line 8 [16-Jul-2026 15:45:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateBlogRequest.php on line 8 [16-Jul-2026 15:46:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCityRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCityRequest.php on line 8 [16-Jul-2026 15:47:04 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php on line 9 [16-Jul-2026 16:05:42 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserPasswordRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserPasswordRequest.php on line 7 [16-Jul-2026 16:06:07 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardServiceRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardServiceRequest.php on line 8 [16-Jul-2026 16:31:33 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/ProductBuyRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/ProductBuyRequest.php on line 8 [17-Jul-2026 00:55:26 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscribersRequest.php on line 7 [17-Jul-2026 00:55:39 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateScheduleAppointmentRequest.php on line 8 [17-Jul-2026 00:56:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEmailSubscriptionRequest.php on line 8 [17-Jul-2026 00:57:21 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontTestimonialRequest.php on line 8 [17-Jul-2026 00:58:25 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontTestimonialRequest.php on line 8 [17-Jul-2026 00:59:26 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardBlogRequest.php on line 8 [17-Jul-2026 01:00:30 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardBlogRequest.php on line 8 [17-Jul-2026 01:01:31 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/createWithdrawAmountRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/createWithdrawAmountRequest.php on line 7 [17-Jul-2026 01:02:31 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateChangePasswordRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateChangePasswordRequest.php on line 7 [17-Jul-2026 01:03:33 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateInstagramEmbedRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateInstagramEmbedRequest.php on line 8 [17-Jul-2026 01:04:35 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/SendMailRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/SendMailRequest.php on line 8 [17-Jul-2026 01:05:36 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/NfcOrderRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/NfcOrderRequest.php on line 8 [17-Jul-2026 01:06:38 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRegisterRequest.php on line 9 [17-Jul-2026 01:07:41 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserSettingRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserSettingRequest.php on line 7 [17-Jul-2026 01:08:47 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCouponCodeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCouponCodeRequest.php on line 7 [17-Jul-2026 01:09:47 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateInstagramEmbedRequest.php on line 8 [17-Jul-2026 01:10:49 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFeatureRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFeatureRequest.php on line 8 [17-Jul-2026 01:11:53 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateTestimonialRequest.php on line 8 [17-Jul-2026 01:12:57 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateMailSettingRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateMailSettingRequest.php on line 8 [17-Jul-2026 01:14:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCustomLinkRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCustomLinkRequest.php on line 8 [17-Jul-2026 01:15:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCustomLinkRequest.php on line 8 [17-Jul-2026 01:16:06 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateTestimonialRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateTestimonialRequest.php on line 8 [17-Jul-2026 01:17:06 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserProfileRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserProfileRequest.php on line 9 [17-Jul-2026 01:18:09 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/HomePageSettingRrequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/HomePageSettingRrequest.php on line 7 [17-Jul-2026 01:19:10 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/MobileRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/MobileRequest.php on line 7 [17-Jul-2026 01:20:13 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateLanguageRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateLanguageRequest.php on line 7 [17-Jul-2026 01:21:16 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateLanguageRequest.php on line 8 [17-Jul-2026 01:22:17 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateFrontFaqRequest.php on line 8 [17-Jul-2026 01:23:19 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateStateRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateStateRequest.php on line 8 [17-Jul-2026 01:24:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateStateRequest.php on line 8 [17-Jul-2026 01:25:25 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateProductRequest.php on line 8 [17-Jul-2026 01:26:30 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateAboutUsRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateAboutUsRequest.php on line 8 [17-Jul-2026 01:27:35 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateGalleryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateGalleryRequest.php on line 8 [17-Jul-2026 01:28:40 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/AddCouponCodeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/AddCouponCodeRequest.php on line 7 [17-Jul-2026 01:29:40 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateGalleryRequest.php on line 8 [17-Jul-2026 01:30:41 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdatePaymentRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdatePaymentRequest.php on line 8 [17-Jul-2026 01:31:42 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateSettingRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateSettingRequest.php on line 9 [17-Jul-2026 01:32:43 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateProductRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateProductRequest.php on line 8 [17-Jul-2026 01:33:45 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateContactRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateContactRequest.php on line 8 [17-Jul-2026 01:34:51 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCountryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCountryRequest.php on line 8 [17-Jul-2026 01:35:52 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontCmsRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateFrontCmsRequest.php on line 7 [17-Jul-2026 01:36:58 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCountryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCountryRequest.php on line 8 [17-Jul-2026 01:37:59 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEnquiryRequest.php on line 8 [17-Jul-2026 01:39:01 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateNfcCardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateNfcCardRequest.php on line 8 [17-Jul-2026 01:40:04 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateContactEnquiryRequest.php:10 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateContactEnquiryRequest.php on line 10 [17-Jul-2026 01:41:12 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateiframeRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateiframeRequest.php on line 7 [17-Jul-2026 01:42:14 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateiframeRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateiframeRequest.php on line 9 [17-Jul-2026 01:43:18 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardRequest.php on line 8 [17-Jul-2026 01:44:20 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardRequest.php on line 8 [17-Jul-2026 01:45:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateEcardRequest.php on line 7 [17-Jul-2026 01:46:28 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateBannerRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateBannerRequest.php on line 8 [17-Jul-2026 01:47:28 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardServiceRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateVcardServiceRequest.php on line 8 [17-Jul-2026 01:48:33 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateRoleRequest.php on line 8 [17-Jul-2026 01:49:38 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateRoleRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateRoleRequest.php on line 8 [17-Jul-2026 01:50:38 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateUserRequest.php on line 8 [17-Jul-2026 01:51:44 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserRequest.php on line 8 [17-Jul-2026 01:52:48 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateCityRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateCityRequest.php on line 8 [17-Jul-2026 01:53:52 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateNfcRequest.php on line 8 [17-Jul-2026 01:54:57 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateCityRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateCityRequest.php on line 8 [17-Jul-2026 01:56:02 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateBlogRequest.php on line 8 [17-Jul-2026 01:57:04 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreatePlanRequest.php on line 9 [17-Jul-2026 01:58:05 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateBlogRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateBlogRequest.php on line 8 [17-Jul-2026 01:59:11 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdatePlanRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdatePlanRequest.php on line 8 [17-Jul-2026 02:00:17 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/HomeBannerRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/HomeBannerRequest.php on line 7 [17-Jul-2026 02:01:21 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardServiceRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/CreateVcardServiceRequest.php on line 8 [17-Jul-2026 02:02:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserPasswordRequest.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/UpdateUserPasswordRequest.php on line 7 [17-Jul-2026 02:03:27 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\FormRequest" not found in /home/cardxfeb/public_html/app/Http/Requests/ProductBuyRequest.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Requests/ProductBuyRequest.php on line 8 PK-\z9Middleware/error_lognu[[15-Jul-2026 02:19:45 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance" not found in /home/cardxfeb/public_html/app/Http/Middleware/PreventRequestsDuringMaintenance.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/PreventRequestsDuringMaintenance.php on line 7 [15-Jul-2026 02:19:51 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\TrimStrings" not found in /home/cardxfeb/public_html/app/Http/Middleware/TrimStrings.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/TrimStrings.php on line 7 [15-Jul-2026 02:19:54 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Middleware\TrustHosts" not found in /home/cardxfeb/public_html/app/Http/Middleware/TrustHosts.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/TrustHosts.php on line 7 [15-Jul-2026 02:19:56 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Middleware\TrustProxies" not found in /home/cardxfeb/public_html/app/Http/Middleware/TrustProxies.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/TrustProxies.php on line 8 [15-Jul-2026 02:19:58 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Routing\Middleware\ValidateSignature" not found in /home/cardxfeb/public_html/app/Http/Middleware/ValidateSignature.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/ValidateSignature.php on line 7 [15-Jul-2026 02:20:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\VerifyCsrfToken" not found in /home/cardxfeb/public_html/app/Http/Middleware/VerifyCsrfToken.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/VerifyCsrfToken.php on line 7 [15-Jul-2026 05:56:42 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Auth\Middleware\Authenticate" not found in /home/cardxfeb/public_html/app/Http/Middleware/Authenticate.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/Authenticate.php on line 13 [15-Jul-2026 23:21:26 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance" not found in /home/cardxfeb/public_html/app/Http/Middleware/PreventRequestsDuringMaintenance.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/PreventRequestsDuringMaintenance.php on line 7 [16-Jul-2026 01:26:59 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Routing\Middleware\ValidateSignature" not found in /home/cardxfeb/public_html/app/Http/Middleware/ValidateSignature.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/ValidateSignature.php on line 7 [16-Jul-2026 02:26:20 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Cookie\Middleware\EncryptCookies" not found in /home/cardxfeb/public_html/app/Http/Middleware/EncryptCookies.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/EncryptCookies.php on line 7 [16-Jul-2026 02:46:57 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\VerifyCsrfToken" not found in /home/cardxfeb/public_html/app/Http/Middleware/VerifyCsrfToken.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/VerifyCsrfToken.php on line 7 [16-Jul-2026 03:38:24 UTC] PHP Fatal error: Uncaught Error: Class "Stancl\Tenancy\Middleware\IdentificationMiddleware" not found in /home/cardxfeb/public_html/app/Http/Middleware/MultiTenantMiddleware.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/MultiTenantMiddleware.php on line 13 [16-Jul-2026 04:39:24 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Middleware\TrustProxies" not found in /home/cardxfeb/public_html/app/Http/Middleware/TrustProxies.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/TrustProxies.php on line 8 [16-Jul-2026 07:08:38 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Cookie\Middleware\EncryptCookies" not found in /home/cardxfeb/public_html/app/Http/Middleware/EncryptCookies.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/EncryptCookies.php on line 7 [16-Jul-2026 07:08:40 UTC] PHP Fatal error: Uncaught Error: Class "Stancl\Tenancy\Middleware\IdentificationMiddleware" not found in /home/cardxfeb/public_html/app/Http/Middleware/MultiTenantMiddleware.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/MultiTenantMiddleware.php on line 13 [16-Jul-2026 08:13:27 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\TrimStrings" not found in /home/cardxfeb/public_html/app/Http/Middleware/TrimStrings.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/TrimStrings.php on line 7 [16-Jul-2026 14:23:52 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Auth\Middleware\Authenticate" not found in /home/cardxfeb/public_html/app/Http/Middleware/Authenticate.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/Authenticate.php on line 13 [16-Jul-2026 18:54:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance" not found in /home/cardxfeb/public_html/app/Http/Middleware/PreventRequestsDuringMaintenance.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/PreventRequestsDuringMaintenance.php on line 7 [16-Jul-2026 18:54:15 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Routing\Middleware\ValidateSignature" not found in /home/cardxfeb/public_html/app/Http/Middleware/ValidateSignature.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/ValidateSignature.php on line 7 [16-Jul-2026 18:55:00 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Cookie\Middleware\EncryptCookies" not found in /home/cardxfeb/public_html/app/Http/Middleware/EncryptCookies.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/EncryptCookies.php on line 7 [16-Jul-2026 18:56:03 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\VerifyCsrfToken" not found in /home/cardxfeb/public_html/app/Http/Middleware/VerifyCsrfToken.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/VerifyCsrfToken.php on line 7 [16-Jul-2026 18:57:08 UTC] PHP Fatal error: Uncaught Error: Class "Stancl\Tenancy\Middleware\IdentificationMiddleware" not found in /home/cardxfeb/public_html/app/Http/Middleware/MultiTenantMiddleware.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/MultiTenantMiddleware.php on line 13 [16-Jul-2026 18:58:13 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Middleware\TrustProxies" not found in /home/cardxfeb/public_html/app/Http/Middleware/TrustProxies.php:8 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/TrustProxies.php on line 8 [16-Jul-2026 18:59:17 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Foundation\Http\Middleware\TrimStrings" not found in /home/cardxfeb/public_html/app/Http/Middleware/TrimStrings.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/TrimStrings.php on line 7 [16-Jul-2026 19:11:19 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Middleware\TrustHosts" not found in /home/cardxfeb/public_html/app/Http/Middleware/TrustHosts.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/app/Http/Middleware/TrustHosts.php on line 7 PK-\A44 error_lognu[[14-Jun-2026 20:17:00 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\JsonResponse" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php on line 12 [14-Jun-2026 21:28:34 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\RedirectResponse" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php on line 15 [14-Jun-2026 21:28:35 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\Response" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php on line 15 [14-Jun-2026 22:53:23 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\Request" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Request.php:23 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Request.php on line 23 [15-Jun-2026 01:25:08 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\File\File" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/File.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/File.php on line 7 [16-Jun-2026 21:53:58 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\JsonResponse" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php on line 12 [17-Jun-2026 09:17:24 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\Response" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php on line 15 [17-Jun-2026 10:53:48 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\RedirectResponse" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php on line 15 [17-Jun-2026 11:31:52 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\File\File" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/File.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/File.php on line 7 [17-Jun-2026 18:56:50 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\File\UploadedFile" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php on line 13 [18-Jun-2026 16:47:59 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\JsonResponse" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php on line 12 [19-Jun-2026 17:54:19 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\Request" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Request.php:23 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Request.php on line 23 [19-Jun-2026 22:18:04 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\RedirectResponse" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php on line 15 [20-Jun-2026 01:34:17 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\File\File" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/File.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/File.php on line 7 [20-Jun-2026 04:51:08 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\File\UploadedFile" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php:13 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php on line 13 [20-Jun-2026 10:21:39 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\Response" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php on line 15 [22-Jun-2026 08:44:55 UTC] PHP Fatal error: Uncaught Error: Class "Symfony\Component\HttpFoundation\Response" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php:15 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php on line 15 PKs\~88!Requests/ProfileUpdateRequest.phpnu[ */ public function rules(): array { return [ 'name' => ['string', 'max:255'], 'email' => ['email', 'max:255', Rule::unique(User::class)->ignore($this->user()->id)], ]; } } PKs\Y!Controllers/ProfileController.phpnu[ $request->user(), ]); } /** * Update the user's profile information. */ public function update(ProfileUpdateRequest $request): RedirectResponse { $request->user()->fill($request->validated()); if ($request->user()->isDirty('email')) { $request->user()->email_verified_at = null; } $request->user()->save(); return Redirect::route('profile.edit')->with('status', 'profile-updated'); } /** * Delete the user's account. */ public function destroy(Request $request): RedirectResponse { $request->validateWithBag('userDeletion', [ 'password' => ['required', 'current_password'], ]); $user = $request->user(); Auth::logout(); $user->delete(); $request->session()->invalidate(); $request->session()->regenerateToken(); return Redirect::to('/'); } } PKs\VN'Controllers/Auth/PasswordController.phpnu[validateWithBag('updatePassword', [ 'current_password' => ['required', 'current_password'], 'password' => ['required', Password::defaults(), 'confirmed'], ]); $request->user()->update([ 'password' => Hash::make($validated['password']), ]); return back()->with('status', 'password-updated'); } } PK!\$Middleware/EnsureEmailIsVerified.phpnu[user() || ($request->user() instanceof MustVerifyEmail && ! $request->user()->hasVerifiedEmail())) { return response()->json(['message' => 'Your email address is not verified.'], 409); } return $next($request); } } PK\  Response.phpnuȯheaders = new ResponseHeaderBag($headers); $this->setContent($content); $this->setStatusCode($status); $this->setProtocolVersion('1.0'); } /** * Set the content on the response. * * @param mixed $content * @return $this * * @throws \InvalidArgumentException */ public function setContent(mixed $content): static { $this->original = $content; // If the content is "JSONable" we will set the appropriate header and convert // the content to JSON. This is useful when returning something like models // from routes that will be automatically transformed to their JSON form. if ($this->shouldBeJson($content)) { $this->header('Content-Type', 'application/json'); $content = $this->morphToJson($content); if ($content === false) { throw new InvalidArgumentException(json_last_error_msg()); } } // If this content implements the "Renderable" interface then we will call the // render method on the object so we will avoid any "__toString" exceptions // that might be thrown and have their errors obscured by PHP's handling. elseif ($content instanceof Renderable) { $content = $content->render(); } parent::setContent($content); return $this; } /** * Determine if the given content should be turned into JSON. * * @param mixed $content * @return bool */ protected function shouldBeJson($content) { return $content instanceof Arrayable || $content instanceof Jsonable || $content instanceof ArrayObject || $content instanceof JsonSerializable || is_array($content); } /** * Morph the given content into JSON. * * @param mixed $content * @return string */ protected function morphToJson($content) { if ($content instanceof Jsonable) { return $content->toJson(); } elseif ($content instanceof Arrayable) { return json_encode($content->toArray()); } return json_encode($content); } } PK\Exceptions/MissingParameter.phpnu[getError()}"); $exception->response = $response; return $exception; } } PK\$ͬExceptions/NotFound.phpnu[ */ public array $errors = []; public static function createForResponse(Response $response): self { $exception = new self(static::getMessageForResponse($response)); $exception->response = $response; $bodyErrors = isset($response->getBody()['errors']) ? $response->getBody()['errors'] : []; $exception->errors = $bodyErrors; return $exception; } public static function getMessageForResponse(Response $response): string { return "Response code {$response->getHttpResponseCode()} returned"; } } PK\H˵ Client.phpnu[apiToken = $apiToken; if (! $baseUrl) { throw MissingParameter::create('baseUrl'); } $this->baseUrl = $baseUrl; if (! $timeout) { throw MissingParameter::create('timeout'); } $this->timeout = $timeout; } public function setApiToken(string $apiToken): self { $this->apiToken = $apiToken; return $this; } public function apiTokenSet(): bool { return ! empty($this->apiToken); } public function setBaseUrl(string $baseUrl): self { $this->baseUrl = $baseUrl; return $this; } /** * @param string $url * @param array $arguments * * @return array|false */ public function get(string $url, array $arguments = []) { return $this->makeRequest('get', $url, $arguments); } /** * @param string $url * @param array $arguments * * @return array|false */ public function post(string $url, array $arguments = []) { return $this->makeRequest('post', $url, $arguments); } /** * @param string $url * @param array $arguments * * @return array|false */ public function patch(string $url, array $arguments = []) { return $this->makeRequest('patch', $url, $arguments); } /** * @param string $url * @param array $arguments * * @return array|false */ public function put(string $url, array $arguments = []) { return $this->makeRequest('put', $url, $arguments); } /** * @param string $method * @param array $arguments * * @return array|false */ public function delete(string $method, array $arguments = []) { return $this->makeRequest('delete', $method, $arguments); } /** * @param string $httpVerb * @param string $url * @param array $arguments * * @return array */ protected function makeRequest(string $httpVerb, string $url, array $arguments = []) { $queryString = http_build_query([ 'key' => $this->apiToken, ]); $fullUrl = "{$this->baseUrl}/{$url}?{$queryString}"; $headers = [ 'x-api-token: '.$this->apiToken, ]; $response = $this->makeCurlRequest($httpVerb, $fullUrl, $headers, $arguments); if ($response->getHttpResponseCode() === 422) { throw InvalidData::createForResponse($response); } if ($response->getHttpResponseCode() === 404) { throw NotFound::createForResponse($response); } if ($response->getHttpResponseCode() !== 200 && $response->getHttpResponseCode() !== 204) { throw BadResponseCode::createForResponse($response); } return $response->getBody(); } public function makeCurlRequest(string $httpVerb, string $fullUrl, array $headers = [], array $arguments = []): Response { $curlHandle = $this->getCurlHandle($fullUrl, $headers); switch ($httpVerb) { case 'post': curl_setopt($curlHandle, CURLOPT_POST, true); $this->attachRequestPayload($curlHandle, $arguments); break; case 'get': curl_setopt($curlHandle, CURLOPT_URL, $fullUrl.'&'.http_build_query($arguments)); break; case 'delete': curl_setopt($curlHandle, CURLOPT_CUSTOMREQUEST, 'DELETE'); break; case 'patch': curl_setopt($curlHandle, CURLOPT_CUSTOMREQUEST, 'PATCH'); $this->attachRequestPayload($curlHandle, $arguments); break; case 'put': curl_setopt($curlHandle, CURLOPT_CUSTOMREQUEST, 'PUT'); $this->attachRequestPayload($curlHandle, $arguments); break; } $body = json_decode(curl_exec($curlHandle), true); $headers = curl_getinfo($curlHandle); $error = curl_error($curlHandle); return new Response($headers, $body, $error); } protected function attachRequestPayload(&$curlHandle, array $data) { $encoded = json_encode($data); $this->lastRequest['body'] = $encoded; curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $encoded); } /** * @param string $fullUrl * @param array $headers * * @return resource */ protected function getCurlHandle(string $fullUrl, array $headers = []) { $curlHandle = curl_init(); curl_setopt($curlHandle, CURLOPT_URL, $fullUrl); curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array_merge([ 'Accept: application/json', 'Content-Type: application/json', ], $headers)); curl_setopt($curlHandle, CURLOPT_USERAGENT, 'Laravel/Flare API 1.0'); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true); curl_setopt($curlHandle, CURLOPT_TIMEOUT, $this->timeout); curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curlHandle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($curlHandle, CURLOPT_ENCODING, ''); curl_setopt($curlHandle, CURLINFO_HEADER_OUT, true); curl_setopt($curlHandle, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curlHandle, CURLOPT_MAXREDIRS, 1); return $curlHandle; } } PK;4\2Ĭ Requests/UpdateConfigRequest.phpnu[ ['required', Rule::in(['light', 'dark', 'auto'])], 'editor' => ['required'], 'hide_solutions' => ['required', 'boolean'], ]; } } PK;4\^#Requests/ExecuteSolutionRequest.phpnu[ 'required', 'parameters' => 'array', ]; } public function getSolution(): Solution { $solution = app(SolutionProviderRepository::class) ->getSolutionForClass($this->get('solution')); abort_if(is_null($solution), 404, 'Solution could not be found'); return $solution; } public function getRunnableSolution(): RunnableSolution { $solution = $this->getSolution(); if (! $solution instanceof RunnableSolution) { abort(404, 'Runnable solution could not be found'); } return $solution; } } PK;4\2&Controllers/UpdateConfigController.phpnu[saveValues($request->validated()); return response()->json($result); } } PK;4\w%Controllers/HealthCheckController.phpnu[ $this->canExecuteCommands(), ]; } protected function canExecuteCommands(): bool { Artisan::call('help', ['--version']); $output = Artisan::output(); return Str::contains($output, app()->version()); } } PK;4\@ )Controllers/ExecuteSolutionController.phpnu[ensureRunnableSolutionsEnabled() ->ensureLocalRequest(); $solution = $request->getRunnableSolution(); $solution->run($request->get('parameters', [])); return response()->noContent(); } public function ensureRunnableSolutionsEnabled(): self { // Should already be checked in middleware but we want to be 100% certain. abort_unless(RunnableSolutionsGuard::check(), 400); return $this; } public function ensureLocalRequest(): self { $ipIsPublic = filter_var( request()->ip(), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ); if ($ipIsPublic) { throw CannotExecuteSolutionForNonLocalIp::make(); } return $this; } } PK;4\Cc ZZ'Middleware/RunnableSolutionsEnabled.phpnu[resource = $resource; } /** * Create a new resource instance. * * @param mixed ...$parameters * @return static */ public static function make(...$parameters) { return new static(...$parameters); } /** * Create a new anonymous resource collection. * * @param mixed $resource * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection */ public static function collection($resource) { return tap(static::newCollection($resource), function ($collection) { if (property_exists(static::class, 'preserveKeys')) { $collection->preserveKeys = (new static([]))->preserveKeys === true; } }); } /** * Create a new resource collection instance. * * @param mixed $resource * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection */ protected static function newCollection($resource) { return new AnonymousResourceCollection($resource, static::class); } /** * Resolve the resource to an array. * * @param \Illuminate\Http\Request|null $request * @return array */ public function resolve($request = null) { $data = $this->toArray( $request = $request ?: Container::getInstance()->make('request') ); if ($data instanceof Arrayable) { $data = $data->toArray(); } elseif ($data instanceof JsonSerializable) { $data = $data->jsonSerialize(); } return $this->filter((array) $data); } /** * Transform the resource into an array. * * @param \Illuminate\Http\Request $request * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable */ public function toArray(Request $request) { if (is_null($this->resource)) { return []; } return is_array($this->resource) ? $this->resource : $this->resource->toArray(); } /** * Convert the model instance to JSON. * * @param int $options * @return string * * @throws \Illuminate\Database\Eloquent\JsonEncodingException */ public function toJson($options = 0) { $json = json_encode($this->jsonSerialize(), $options); if (json_last_error() !== JSON_ERROR_NONE) { throw JsonEncodingException::forResource($this, json_last_error_msg()); } return $json; } /** * Get any additional data that should be returned with the resource array. * * @param \Illuminate\Http\Request $request * @return array */ public function with(Request $request) { return $this->with; } /** * Add additional meta data to the resource response. * * @param array $data * @return $this */ public function additional(array $data) { $this->additional = $data; return $this; } /** * Get the JSON serialization options that should be applied to the resource response. * * @return int */ public function jsonOptions() { return 0; } /** * Customize the response for a request. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Http\JsonResponse $response * @return void */ public function withResponse(Request $request, JsonResponse $response) { // } /** * Set the string that should wrap the outer-most resource array. * * @param string $value * @return void */ public static function wrap($value) { static::$wrap = $value; } /** * Disable wrapping of the outer-most resource array. * * @return void */ public static function withoutWrapping() { static::$wrap = null; } /** * Transform the resource into an HTTP response. * * @param \Illuminate\Http\Request|null $request * @return \Illuminate\Http\JsonResponse */ public function response($request = null) { return $this->toResponse( $request ?: Container::getInstance()->make('request') ); } /** * Create an HTTP response that represents the object. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function toResponse($request) { return (new ResourceResponse($this))->toResponse($request); } /** * Prepare the resource for JSON serialization. * * @return array */ public function jsonSerialize(): array { return $this->resolve(Container::getInstance()->make('request')); } } PK\uze.Resources/Json/AnonymousResourceCollection.phpnu[collects = $collects; parent::__construct($resource); } } PK\ˆ #Resources/Json/ResourceResponse.phpnu[resource = $resource; } /** * Create an HTTP response that represents the object. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function toResponse($request) { return tap(response()->json( $this->wrap( $this->resource->resolve($request), $this->resource->with($request), $this->resource->additional ), $this->calculateStatus(), [], $this->resource->jsonOptions() ), function ($response) use ($request) { $response->original = $this->resource->resource; $this->resource->withResponse($request, $response); }); } /** * Wrap the given data if necessary. * * @param array $data * @param array $with * @param array $additional * @return array */ protected function wrap($data, $with = [], $additional = []) { if ($data instanceof Collection) { $data = $data->all(); } if ($this->haveDefaultWrapperAndDataIsUnwrapped($data)) { $data = [$this->wrapper() => $data]; } elseif ($this->haveAdditionalInformationAndDataIsUnwrapped($data, $with, $additional)) { $data = [($this->wrapper() ?? 'data') => $data]; } return array_merge_recursive($data, $with, $additional); } /** * Determine if we have a default wrapper and the given data is unwrapped. * * @param array $data * @return bool */ protected function haveDefaultWrapperAndDataIsUnwrapped($data) { return $this->wrapper() && ! array_key_exists($this->wrapper(), $data); } /** * Determine if "with" data has been added and our data is unwrapped. * * @param array $data * @param array $with * @param array $additional * @return bool */ protected function haveAdditionalInformationAndDataIsUnwrapped($data, $with, $additional) { return (! empty($with) || ! empty($additional)) && (! $this->wrapper() || ! array_key_exists($this->wrapper(), $data)); } /** * Get the default data wrapper for the resource. * * @return string */ protected function wrapper() { return get_class($this->resource)::$wrap; } /** * Calculate the appropriate status code for the response. * * @return int */ protected function calculateStatus() { return $this->resource->resource instanceof Model && $this->resource->resource->wasRecentlyCreated ? 201 : 200; } } PK\SG G ,Resources/Json/PaginatedResourceResponse.phpnu[json( $this->wrap( $this->resource->resolve($request), array_merge_recursive( $this->paginationInformation($request), $this->resource->with($request), $this->resource->additional ) ), $this->calculateStatus(), [], $this->resource->jsonOptions() ), function ($response) use ($request) { $response->original = $this->resource->resource->map(function ($item) { return is_array($item) ? Arr::get($item, 'resource') : $item->resource; }); $this->resource->withResponse($request, $response); }); } /** * Add the pagination information to the response. * * @param \Illuminate\Http\Request $request * @return array */ protected function paginationInformation($request) { $paginated = $this->resource->resource->toArray(); $default = [ 'links' => $this->paginationLinks($paginated), 'meta' => $this->meta($paginated), ]; if (method_exists($this->resource, 'paginationInformation') || $this->resource->hasMacro('paginationInformation')) { return $this->resource->paginationInformation($request, $paginated, $default); } return $default; } /** * Get the pagination links for the response. * * @param array $paginated * @return array */ protected function paginationLinks($paginated) { return [ 'first' => $paginated['first_page_url'] ?? null, 'last' => $paginated['last_page_url'] ?? null, 'prev' => $paginated['prev_page_url'] ?? null, 'next' => $paginated['next_page_url'] ?? null, ]; } /** * Gather the meta data for the response. * * @param array $paginated * @return array */ protected function meta($paginated) { return Arr::except($paginated, [ 'data', 'first_page_url', 'last_page_url', 'prev_page_url', 'next_page_url', ]); } } PK\ ?z  %Resources/Json/ResourceCollection.phpnu[resource = $this->collectResource($resource); } /** * Indicate that all current query parameters should be appended to pagination links. * * @return $this */ public function preserveQuery() { $this->preserveAllQueryParameters = true; return $this; } /** * Specify the query string parameters that should be present on pagination links. * * @param array $query * @return $this */ public function withQuery(array $query) { $this->preserveAllQueryParameters = false; $this->queryParameters = $query; return $this; } /** * Return the count of items in the resource collection. * * @return int */ public function count(): int { return $this->collection->count(); } /** * Transform the resource into a JSON array. * * @param \Illuminate\Http\Request $request * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable */ public function toArray(Request $request) { return $this->collection->map->toArray($request)->all(); } /** * Create an HTTP response that represents the object. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function toResponse($request) { if ($this->resource instanceof AbstractPaginator || $this->resource instanceof AbstractCursorPaginator) { return $this->preparePaginatedResponse($request); } return parent::toResponse($request); } /** * Create a paginate-aware HTTP response. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ protected function preparePaginatedResponse($request) { if ($this->preserveAllQueryParameters) { $this->resource->appends($request->query()); } elseif (! is_null($this->queryParameters)) { $this->resource->appends($this->queryParameters); } return (new PaginatedResourceResponse($this))->toResponse($request); } } PK\ nj` ` Resources/Json/error_lognu[[15-Jun-2026 11:27:30 UTC] PHP Fatal error: Uncaught Error: Interface "Illuminate\Contracts\Support\Responsable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php on line 9 [15-Jun-2026 11:56:31 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Resources\Json\ResourceResponse" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php on line 7 [15-Jun-2026 21:32:53 UTC] PHP Fatal error: Trait "Illuminate\Http\Resources\ConditionallyLoadsAttributes" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php on line 17 [17-Jun-2026 15:02:07 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Resources\Json\ResourceCollection" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php:5 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php on line 5 [17-Jun-2026 20:40:26 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Resources\Json\JsonResource" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php:12 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php on line 12 [17-Jun-2026 23:21:09 UTC] PHP Fatal error: Uncaught Error: Interface "Illuminate\Contracts\Support\Responsable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php:9 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php on line 9 [21-Jun-2026 02:42:53 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Resources\Json\ResourceCollection" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php:5 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php on line 5 PK\!AResources/MergeValue.phpnu[data = $data->all(); } elseif ($data instanceof JsonSerializable) { $this->data = $data->jsonSerialize(); } else { $this->data = $data; } } } PK\RAmČ,,*Resources/ConditionallyLoadsAttributes.phpnu[ $value) { $index++; if (is_array($value)) { $data[$key] = $this->filter($value); continue; } if (is_numeric($key) && $value instanceof MergeValue) { return $this->mergeData( $data, $index, $this->filter($value->data), array_values($value->data) === $value->data ); } if ($value instanceof self && is_null($value->resource)) { $data[$key] = null; } } return $this->removeMissingValues($data); } /** * Merge the given data in at the given index. * * @param array $data * @param int $index * @param array $merge * @param bool $numericKeys * @return array */ protected function mergeData($data, $index, $merge, $numericKeys) { if ($numericKeys) { return $this->removeMissingValues(array_merge( array_merge(array_slice($data, 0, $index, true), $merge), $this->filter(array_values(array_slice($data, $index + 1, null, true))) )); } return $this->removeMissingValues(array_slice($data, 0, $index, true) + $merge + $this->filter(array_slice($data, $index + 1, null, true))); } /** * Remove the missing values from the filtered data. * * @param array $data * @return array */ protected function removeMissingValues($data) { $numericKeys = true; foreach ($data as $key => $value) { if (($value instanceof PotentiallyMissing && $value->isMissing()) || ($value instanceof self && $value->resource instanceof PotentiallyMissing && $value->isMissing())) { unset($data[$key]); } else { $numericKeys = $numericKeys && is_numeric($key); } } if (property_exists($this, 'preserveKeys') && $this->preserveKeys === true) { return $data; } return $numericKeys ? array_values($data) : $data; } /** * Retrieve a value if the given "condition" is truthy. * * @param bool $condition * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ protected function when($condition, $value, $default = null) { if ($condition) { return value($value); } return func_num_args() === 3 ? value($default) : new MissingValue; } /** * Retrieve a value if the given "condition" is falsy. * * @param bool $condition * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ public function unless($condition, $value, $default = null) { $arguments = func_num_args() === 2 ? [$value] : [$value, $default]; return $this->when(! $condition, ...$arguments); } /** * Merge a value into the array. * * @param mixed $value * @return \Illuminate\Http\Resources\MergeValue|mixed */ protected function merge($value) { return $this->mergeWhen(true, $value); } /** * Merge a value if the given condition is truthy. * * @param bool $condition * @param mixed $value * @return \Illuminate\Http\Resources\MergeValue|mixed */ protected function mergeWhen($condition, $value) { return $condition ? new MergeValue(value($value)) : new MissingValue; } /** * Merge a value unless the given condition is truthy. * * @param bool $condition * @param mixed $value * @return \Illuminate\Http\Resources\MergeValue|mixed */ protected function mergeUnless($condition, $value) { return ! $condition ? new MergeValue(value($value)) : new MissingValue; } /** * Merge the given attributes. * * @param array $attributes * @return \Illuminate\Http\Resources\MergeValue */ protected function attributes($attributes) { return new MergeValue( Arr::only($this->resource->toArray(), $attributes) ); } /** * Retrieve an attribute if it exists on the resource. * * @param string $attribute * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ public function whenHas($attribute, $value = null, $default = null) { if (func_num_args() < 3) { $default = new MissingValue; } if (! array_key_exists($attribute, $this->resource->getAttributes())) { return value($default); } return func_num_args() === 1 ? $this->resource->{$attribute} : value($value, $this->resource->{$attribute}); } /** * Retrieve a model attribute if it is null. * * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ protected function whenNull($value, $default = null) { $arguments = func_num_args() == 1 ? [$value] : [$value, $default]; return $this->when(is_null($value), ...$arguments); } /** * Retrieve a model attribute if it is not null. * * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ protected function whenNotNull($value, $default = null) { $arguments = func_num_args() == 1 ? [$value] : [$value, $default]; return $this->when(! is_null($value), ...$arguments); } /** * Retrieve an accessor when it has been appended. * * @param string $attribute * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ protected function whenAppended($attribute, $value = null, $default = null) { if ($this->resource->hasAppended($attribute)) { return func_num_args() >= 2 ? value($value) : $this->resource->$attribute; } return func_num_args() === 3 ? value($default) : new MissingValue; } /** * Retrieve a relationship if it has been loaded. * * @param string $relationship * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ protected function whenLoaded($relationship, $value = null, $default = null) { if (func_num_args() < 3) { $default = new MissingValue; } if (! $this->resource->relationLoaded($relationship)) { return value($default); } if (func_num_args() === 1) { return $this->resource->{$relationship}; } if ($this->resource->{$relationship} === null) { return; } return value($value); } /** * Retrieve a relationship count if it exists. * * @param string $relationship * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ public function whenCounted($relationship, $value = null, $default = null) { if (func_num_args() < 3) { $default = new MissingValue; } $attribute = (string) Str::of($relationship)->snake()->finish('_count'); if (! isset($this->resource->getAttributes()[$attribute])) { return value($default); } if (func_num_args() === 1) { return $this->resource->{$attribute}; } if ($this->resource->{$attribute} === null) { return; } return value($value, $this->resource->{$attribute}); } /** * Retrieve a relationship aggregated value if it exists. * * @param string $relationship * @param string $column * @param string $aggregate * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ public function whenAggregated($relationship, $column, $aggregate, $value = null, $default = null) { $attribute = (string) Str::of($relationship)->snake()->append('_')->append($aggregate)->append('_')->finish($column); if (! isset($this->resource->getAttributes()[$attribute])) { return value($default); } if (func_num_args() === 3) { return $this->resource->{$attribute}; } if ($this->resource->{$attribute} === null) { return; } return value($value, $this->resource->{$attribute}); } /** * Execute a callback if the given pivot table has been loaded. * * @param string $table * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ protected function whenPivotLoaded($table, $value, $default = null) { return $this->whenPivotLoadedAs('pivot', ...func_get_args()); } /** * Execute a callback if the given pivot table with a custom accessor has been loaded. * * @param string $accessor * @param string $table * @param mixed $value * @param mixed $default * @return \Illuminate\Http\Resources\MissingValue|mixed */ protected function whenPivotLoadedAs($accessor, $table, $value, $default = null) { if (func_num_args() === 3) { $default = new MissingValue; } return $this->when( $this->hasPivotLoadedAs($accessor, $table), ...[$value, $default] ); } /** * Determine if the resource has the specified pivot table loaded. * * @param string $table * @return bool */ protected function hasPivotLoaded($table) { return $this->hasPivotLoadedAs('pivot', $table); } /** * Determine if the resource has the specified pivot table loaded with a custom accessor. * * @param string $accessor * @param string $table * @return bool */ protected function hasPivotLoadedAs($accessor, $table) { return isset($this->resource->$accessor) && ($this->resource->$accessor instanceof $table || $this->resource->$accessor->getTable() === $table); } /** * Transform the given value if it is present. * * @param mixed $value * @param callable $callback * @param mixed $default * @return mixed */ protected function transform($value, callable $callback, $default = null) { return transform( $value, $callback, func_num_args() === 3 ? $default : new MissingValue ); } } PK\ۃ2o Resources/CollectsResources.phpnu[collects(); $this->collection = $collects && ! $resource->first() instanceof $collects ? $resource->mapInto($collects) : $resource->toBase(); return ($resource instanceof AbstractPaginator || $resource instanceof AbstractCursorPaginator) ? $resource->setCollection($this->collection) : $this->collection; } /** * Get the resource that this resource collects. * * @return string|null */ protected function collects() { $collects = null; if ($this->collects) { $collects = $this->collects; } elseif (str_ends_with(class_basename($this), 'Collection') && (class_exists($class = Str::replaceLast('Collection', '', get_class($this))) || class_exists($class = Str::replaceLast('Collection', 'Resource', get_class($this))))) { $collects = $class; } if (! $collects || is_a($collects, JsonResource::class, true)) { return $collects; } throw new LogicException('Resource collections must collect instances of '.JsonResource::class.'.'); } /** * Get the JSON serialization options that should be applied to the resource response. * * @return int */ public function jsonOptions() { $collects = $this->collects(); if (! $collects) { return 0; } return (new ReflectionClass($collects)) ->newInstanceWithoutConstructor() ->jsonOptions(); } /** * Get an iterator for the resource collection. * * @return \ArrayIterator */ public function getIterator(): Traversable { return $this->collection->getIterator(); } } PK\/' ' !Resources/DelegatesToResource.phpnu[resource->getRouteKey(); } /** * Get the route key for the resource. * * @return string */ public function getRouteKeyName() { return $this->resource->getRouteKeyName(); } /** * Retrieve the model for a bound value. * * @param mixed $value * @param string|null $field * @return void * * @throws \Exception */ public function resolveRouteBinding($value, $field = null) { throw new Exception('Resources may not be implicitly resolved from route bindings.'); } /** * Retrieve the model for a bound value. * * @param string $childType * @param mixed $value * @param string|null $field * @return void * * @throws \Exception */ public function resolveChildRouteBinding($childType, $value, $field = null) { throw new Exception('Resources may not be implicitly resolved from route bindings.'); } /** * Determine if the given attribute exists. * * @param mixed $offset * @return bool */ public function offsetExists($offset): bool { return isset($this->resource[$offset]); } /** * Get the value for a given offset. * * @param mixed $offset * @return mixed */ public function offsetGet($offset): mixed { return $this->resource[$offset]; } /** * Set the value for a given offset. * * @param mixed $offset * @param mixed $value * @return void */ public function offsetSet($offset, $value): void { $this->resource[$offset] = $value; } /** * Unset the value for a given offset. * * @param mixed $offset * @return void */ public function offsetUnset($offset): void { unset($this->resource[$offset]); } /** * Determine if an attribute exists on the resource. * * @param string $key * @return bool */ public function __isset($key) { return isset($this->resource->{$key}); } /** * Unset an attribute on the resource. * * @param string $key * @return void */ public function __unset($key) { unset($this->resource->{$key}); } /** * Dynamically get properties from the underlying resource. * * @param string $key * @return mixed */ public function __get($key) { return $this->resource->{$key}; } /** * Dynamically pass method calls to the underlying resource. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { if (static::hasMacro($method)) { return $this->macroCall($method, $parameters); } return $this->forwardCallTo($this->resource, $method, $parameters); } } PK\0;Resources/error_lognu[[15-Jun-2026 00:13:41 UTC] PHP Fatal error: Uncaught Error: Interface "Illuminate\Http\Resources\PotentiallyMissing" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php:5 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php on line 5 [17-Jun-2026 09:27:12 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\ForwardsCalls" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php on line 9 [17-Jun-2026 21:08:28 UTC] PHP Fatal error: Uncaught Error: Interface "Illuminate\Http\Resources\PotentiallyMissing" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php:5 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php on line 5 [19-Jun-2026 14:18:11 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\ForwardsCalls" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php on line 9 PK\B Resources/PotentiallyMissing.phpnu[name = $name; $this->tempFile = $tempFile; parent::__construct( $this->tempFilePath(), $name, $this->getMimeType(), null, true ); } /** * Create a new fake file. * * @param string $name * @param string|int $kilobytes * @return \Illuminate\Http\Testing\File */ public static function create($name, $kilobytes = 0) { return (new FileFactory)->create($name, $kilobytes); } /** * Create a new fake file with content. * * @param string $name * @param string $content * @return \Illuminate\Http\Testing\File */ public static function createWithContent($name, $content) { return (new FileFactory)->createWithContent($name, $content); } /** * Create a new fake image. * * @param string $name * @param int $width * @param int $height * @return \Illuminate\Http\Testing\File */ public static function image($name, $width = 10, $height = 10) { return (new FileFactory)->image($name, $width, $height); } /** * Set the "size" of the file in kilobytes. * * @param int $kilobytes * @return $this */ public function size($kilobytes) { $this->sizeToReport = $kilobytes * 1024; return $this; } /** * Get the size of the file. * * @return int */ public function getSize(): int { return $this->sizeToReport ?: parent::getSize(); } /** * Set the "MIME type" for the file. * * @param string $mimeType * @return $this */ public function mimeType($mimeType) { $this->mimeTypeToReport = $mimeType; return $this; } /** * Get the MIME type of the file. * * @return string */ public function getMimeType(): string { return $this->mimeTypeToReport ?: MimeType::from($this->name); } /** * Get the path to the temporary file. * * @return string */ protected function tempFilePath() { return stream_get_meta_data($this->tempFile)['uri']; } } PK\M~XO Testing/FileFactory.phpnu[createWithContent($name, $kilobytes); } return tap(new File($name, tmpfile()), function ($file) use ($kilobytes, $mimeType) { $file->sizeToReport = $kilobytes * 1024; $file->mimeTypeToReport = $mimeType; }); } /** * Create a new fake file with content. * * @param string $name * @param string $content * @return \Illuminate\Http\Testing\File */ public function createWithContent($name, $content) { $tmpfile = tmpfile(); fwrite($tmpfile, $content); return tap(new File($name, $tmpfile), function ($file) use ($tmpfile) { $file->sizeToReport = fstat($tmpfile)['size']; }); } /** * Create a new fake image. * * @param string $name * @param int $width * @param int $height * @return \Illuminate\Http\Testing\File * * @throws \LogicException */ public function image($name, $width = 10, $height = 10) { return new File($name, $this->generateImage( $width, $height, pathinfo($name, PATHINFO_EXTENSION) )); } /** * Generate a dummy image of the given width and height. * * @param int $width * @param int $height * @param string $extension * @return resource * * @throws \LogicException */ protected function generateImage($width, $height, $extension) { if (! function_exists('imagecreatetruecolor')) { throw new LogicException('GD extension is not installed.'); } return tap(tmpfile(), function ($temp) use ($width, $height, $extension) { ob_start(); $extension = in_array($extension, ['jpeg', 'png', 'gif', 'webp', 'wbmp', 'bmp']) ? strtolower($extension) : 'jpeg'; $image = imagecreatetruecolor($width, $height); if (! function_exists($functionName = "image{$extension}")) { ob_get_clean(); throw new LogicException("{$functionName} function is not defined and image cannot be generated."); } call_user_func($functionName, $image); fwrite($temp, ob_get_clean()); }); } } PK\וTesting/MimeType.phpnu[getMimeTypes($extension)) ?? 'application/octet-stream'; } /** * Search for the extension of a given MIME type. * * @param string $mimeType * @return string|null */ public static function search($mimeType) { return Arr::first(self::getMimeTypes()->getExtensions($mimeType)); } } PK\DPPTesting/error_lognu[[18-Jun-2026 12:53:23 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\UploadedFile" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Testing/File.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Testing/File.php on line 7 PK\v,qqClient/HttpClientException.phpnu[prepareMessage($response), $response->status()); $this->response = $response; } /** * Prepare the exception message. * * @param \Illuminate\Http\Client\Response $response * @return string */ protected function prepareMessage(Response $response) { $message = "HTTP request returned status code {$response->status()}"; $summary = Message::bodySummary($response->toPsrResponse()); return is_null($summary) ? $message : $message .= ":\n{$summary}\n"; } } PK\z"Client/Events/ConnectionFailed.phpnu[request = $request; } } PK\\"Client/Events/ResponseReceived.phpnu[request = $request; $this->response = $response; } } PK\o Client/Events/RequestSending.phpnu[request = $request; } } PK\Myπ&&Client/Response.phpnu[response = $response; } /** * Get the body of the response. * * @return string */ public function body() { return (string) $this->response->getBody(); } /** * Get the JSON decoded body of the response as an array or scalar value. * * @param string|null $key * @param mixed $default * @return mixed */ public function json($key = null, $default = null) { if (! $this->decoded) { $this->decoded = json_decode($this->body(), true); } if (is_null($key)) { return $this->decoded; } return data_get($this->decoded, $key, $default); } /** * Get the JSON decoded body of the response as an object. * * @return object|null */ public function object() { return json_decode($this->body(), false); } /** * Get the JSON decoded body of the response as a collection. * * @param string|null $key * @return \Illuminate\Support\Collection */ public function collect($key = null) { return Collection::make($this->json($key)); } /** * Get a header from the response. * * @param string $header * @return string */ public function header(string $header) { return $this->response->getHeaderLine($header); } /** * Get the headers from the response. * * @return array */ public function headers() { return $this->response->getHeaders(); } /** * Get the status code of the response. * * @return int */ public function status() { return (int) $this->response->getStatusCode(); } /** * Get the reason phrase of the response. * * @return string */ public function reason() { return $this->response->getReasonPhrase(); } /** * Get the effective URI of the response. * * @return \Psr\Http\Message\UriInterface|null */ public function effectiveUri() { return $this->transferStats?->getEffectiveUri(); } /** * Determine if the request was successful. * * @return bool */ public function successful() { return $this->status() >= 200 && $this->status() < 300; } /** * Determine if the response was a redirect. * * @return bool */ public function redirect() { return $this->status() >= 300 && $this->status() < 400; } /** * Determine if the response indicates a client or server error occurred. * * @return bool */ public function failed() { return $this->serverError() || $this->clientError(); } /** * Determine if the response indicates a client error occurred. * * @return bool */ public function clientError() { return $this->status() >= 400 && $this->status() < 500; } /** * Determine if the response indicates a server error occurred. * * @return bool */ public function serverError() { return $this->status() >= 500; } /** * Execute the given callback if there was a server or client error. * * @param callable $callback * @return $this */ public function onError(callable $callback) { if ($this->failed()) { $callback($this); } return $this; } /** * Get the response cookies. * * @return \GuzzleHttp\Cookie\CookieJar */ public function cookies() { return $this->cookies; } /** * Get the handler stats of the response. * * @return array */ public function handlerStats() { return $this->transferStats?->getHandlerStats() ?? []; } /** * Close the stream and any underlying resources. * * @return $this */ public function close() { $this->response->getBody()->close(); return $this; } /** * Get the underlying PSR response for the response. * * @return \Psr\Http\Message\ResponseInterface */ public function toPsrResponse() { return $this->response; } /** * Create an exception if a server or client error occurred. * * @return \Illuminate\Http\Client\RequestException|null */ public function toException() { if ($this->failed()) { return new RequestException($this); } } /** * Throw an exception if a server or client error occurred. * * @param \Closure|null $callback * @return $this * * @throws \Illuminate\Http\Client\RequestException */ public function throw() { $callback = func_get_args()[0] ?? null; if ($this->failed()) { throw tap($this->toException(), function ($exception) use ($callback) { if ($callback && is_callable($callback)) { $callback($this, $exception); } }); } return $this; } /** * Throw an exception if a server or client error occurred and the given condition evaluates to true. * * @param \Closure|bool $condition * @param \Closure|null $throwCallback * @return $this * * @throws \Illuminate\Http\Client\RequestException */ public function throwIf($condition) { return value($condition, $this) ? $this->throw(func_get_args()[1] ?? null) : $this; } /** * Throw an exception if the response status code matches the given code. * * @param callable|int $statusCode * @return $this * * @throws \Illuminate\Http\Client\RequestException */ public function throwIfStatus($statusCode) { if (is_callable($statusCode) && $statusCode($this->status(), $this)) { return $this->throw(); } return $this->status() === $statusCode ? $this->throw() : $this; } /** * Throw an exception unless the response status code matches the given code. * * @param callable|int $statusCode * @return $this * * @throws \Illuminate\Http\Client\RequestException */ public function throwUnlessStatus($statusCode) { if (is_callable($statusCode) && ! $statusCode($this->status(), $this)) { return $this->throw(); } return $this->status() === $statusCode ? $this : $this->throw(); } /** * Throw an exception if the response status code is a 4xx level code. * * @return $this * * @throws \Illuminate\Http\Client\RequestException */ public function throwIfClientError() { return $this->clientError() ? $this->throw() : $this; } /** * Throw an exception if the response status code is a 5xx level code. * * @return $this * * @throws \Illuminate\Http\Client\RequestException */ public function throwIfServerError() { return $this->serverError() ? $this->throw() : $this; } /** * Determine if the given offset exists. * * @param string $offset * @return bool */ public function offsetExists($offset): bool { return isset($this->json()[$offset]); } /** * Get the value for a given offset. * * @param string $offset * @return mixed */ public function offsetGet($offset): mixed { return $this->json()[$offset]; } /** * Set the value at the given offset. * * @param string $offset * @param mixed $value * @return void * * @throws \LogicException */ public function offsetSet($offset, $value): void { throw new LogicException('Response data may not be mutated using array access.'); } /** * Unset the value at the given offset. * * @param string $offset * @return void * * @throws \LogicException */ public function offsetUnset($offset): void { throw new LogicException('Response data may not be mutated using array access.'); } /** * Get the body of the response. * * @return string */ public function __toString() { return $this->body(); } /** * Dynamically proxy other methods to the underlying response. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { return static::hasMacro($method) ? $this->macroCall($method, $parameters) : $this->response->{$method}(...$parameters); } } PK\/y:[  Client/Pool.phpnu[factory = $factory ?: new Factory(); $this->handler = Utils::chooseHandler(); } /** * Add a request to the pool with a key. * * @param string $key * @return \Illuminate\Http\Client\PendingRequest */ public function as(string $key) { return $this->pool[$key] = $this->asyncRequest(); } /** * Retrieve a new async pending request. * * @return \Illuminate\Http\Client\PendingRequest */ protected function asyncRequest() { return $this->factory->setHandler($this->handler)->async(); } /** * Retrieve the requests in the pool. * * @return array */ public function getRequests() { return $this->pool; } /** * Add a request to the pool with a numeric index. * * @param string $method * @param array $parameters * @return \Illuminate\Http\Client\PendingRequest|\GuzzleHttp\Promise\Promise */ public function __call($method, $parameters) { return $this->pool[] = $this->asyncRequest()->$method(...$parameters); } } PK\5}wClient/Request.phpnu[request = $request; } /** * Get the request method. * * @return string */ public function method() { return $this->request->getMethod(); } /** * Get the URL of the request. * * @return string */ public function url() { return (string) $this->request->getUri(); } /** * Determine if the request has a given header. * * @param string $key * @param mixed $value * @return bool */ public function hasHeader($key, $value = null) { if (is_null($value)) { return ! empty($this->request->getHeaders()[$key]); } $headers = $this->headers(); if (! Arr::has($headers, $key)) { return false; } $value = is_array($value) ? $value : [$value]; return empty(array_diff($value, $headers[$key])); } /** * Determine if the request has the given headers. * * @param array|string $headers * @return bool */ public function hasHeaders($headers) { if (is_string($headers)) { $headers = [$headers => null]; } foreach ($headers as $key => $value) { if (! $this->hasHeader($key, $value)) { return false; } } return true; } /** * Get the values for the header with the given name. * * @param string $key * @return array */ public function header($key) { return Arr::get($this->headers(), $key, []); } /** * Get the request headers. * * @return array */ public function headers() { return $this->request->getHeaders(); } /** * Get the body of the request. * * @return string */ public function body() { return (string) $this->request->getBody(); } /** * Determine if the request contains the given file. * * @param string $name * @param string|null $value * @param string|null $filename * @return bool */ public function hasFile($name, $value = null, $filename = null) { if (! $this->isMultipart()) { return false; } return collect($this->data)->reject(function ($file) use ($name, $value, $filename) { return $file['name'] != $name || ($value && $file['contents'] != $value) || ($filename && $file['filename'] != $filename); })->count() > 0; } /** * Get the request's data (form parameters or JSON). * * @return array */ public function data() { if ($this->isForm()) { return $this->parameters(); } elseif ($this->isJson()) { return $this->json(); } return $this->data ?? []; } /** * Get the request's form parameters. * * @return array */ protected function parameters() { if (! $this->data) { parse_str($this->body(), $parameters); $this->data = $parameters; } return $this->data; } /** * Get the JSON decoded body of the request. * * @return array */ protected function json() { if (! $this->data) { $this->data = json_decode($this->body(), true) ?? []; } return $this->data; } /** * Determine if the request is simple form data. * * @return bool */ public function isForm() { return $this->hasHeader('Content-Type', 'application/x-www-form-urlencoded'); } /** * Determine if the request is JSON. * * @return bool */ public function isJson() { return $this->hasHeader('Content-Type') && str_contains($this->header('Content-Type')[0], 'json'); } /** * Determine if the request is multipart. * * @return bool */ public function isMultipart() { return $this->hasHeader('Content-Type') && str_contains($this->header('Content-Type')[0], 'multipart'); } /** * Set the decoded data on the request. * * @param array $data * @return $this */ public function withData(array $data) { $this->data = $data; return $this; } /** * Get the underlying PSR compliant request instance. * * @return \Psr\Http\Message\RequestInterface */ public function toPsrRequest() { return $this->request; } /** * Determine if the given offset exists. * * @param string $offset * @return bool */ public function offsetExists($offset): bool { return isset($this->data()[$offset]); } /** * Get the value for a given offset. * * @param string $offset * @return mixed */ public function offsetGet($offset): mixed { return $this->data()[$offset]; } /** * Set the value at the given offset. * * @param string $offset * @param mixed $value * @return void * * @throws \LogicException */ public function offsetSet($offset, $value): void { throw new LogicException('Request data may not be mutated using array access.'); } /** * Unset the value at the given offset. * * @param string $offset * @return void * * @throws \LogicException */ public function offsetUnset($offset): void { throw new LogicException('Request data may not be mutated using array access.'); } } PK\H&? ? (Client/Concerns/DeterminesStatusCode.phpnu[status() === 200; } /** * Determine if the response code was 201 "Created" response. * * @return bool */ public function created() { return $this->status() === 201; } /** * Determine if the response code was 202 "Accepted" response. * * @return bool */ public function accepted() { return $this->status() === 202; } /** * Determine if the response code was the given status code and the body has no content. * * @param int $status * @return bool */ public function noContent($status = 204) { return $this->status() === $status && $this->body() === ''; } /** * Determine if the response code was a 301 "Moved Permanently". * * @return bool */ public function movedPermanently() { return $this->status() === 301; } /** * Determine if the response code was a 302 "Found" response. * * @return bool */ public function found() { return $this->status() === 302; } /** * Determine if the response was a 400 "Bad Request" response. * * @return bool */ public function badRequest() { return $this->status() === 400; } /** * Determine if the response was a 401 "Unauthorized" response. * * @return bool */ public function unauthorized() { return $this->status() === 401; } /** * Determine if the response was a 402 "Payment Required" response. * * @return bool */ public function paymentRequired() { return $this->status() === 402; } /** * Determine if the response was a 403 "Forbidden" response. * * @return bool */ public function forbidden() { return $this->status() === 403; } /** * Determine if the response was a 404 "Not Found" response. * * @return bool */ public function notFound() { return $this->status() === 404; } /** * Determine if the response was a 408 "Request Timeout" response. * * @return bool */ public function requestTimeout() { return $this->status() === 408; } /** * Determine if the response was a 409 "Conflict" response. * * @return bool */ public function conflict() { return $this->status() === 409; } /** * Determine if the response was a 422 "Unprocessable Entity" response. * * @return bool */ public function unprocessableEntity() { return $this->status() === 422; } /** * Determine if the response was a 429 "Too Many Requests" response. * * @return bool */ public function tooManyRequests() { return $this->status() === 429; } } PK\A"Client/PendingRequest.phpnu[factory = $factory; $this->middleware = new Collection($middleware); $this->asJson(); $this->options = [ 'connect_timeout' => 10, 'http_errors' => false, 'timeout' => 30, ]; $this->beforeSendingCallbacks = collect([function (Request $request, array $options, PendingRequest $pendingRequest) { $pendingRequest->request = $request; $pendingRequest->cookies = $options['cookies']; $pendingRequest->dispatchRequestSendingEvent(); }]); } /** * Set the base URL for the pending request. * * @param string $url * @return $this */ public function baseUrl(string $url) { $this->baseUrl = $url; return $this; } /** * Attach a raw body to the request. * * @param string $content * @param string $contentType * @return $this */ public function withBody($content, $contentType = 'application/json') { $this->bodyFormat('body'); $this->pendingBody = $content; $this->contentType($contentType); return $this; } /** * Indicate the request contains JSON. * * @return $this */ public function asJson() { return $this->bodyFormat('json')->contentType('application/json'); } /** * Indicate the request contains form parameters. * * @return $this */ public function asForm() { return $this->bodyFormat('form_params')->contentType('application/x-www-form-urlencoded'); } /** * Attach a file to the request. * * @param string|array $name * @param string|resource $contents * @param string|null $filename * @param array $headers * @return $this */ public function attach($name, $contents = '', $filename = null, array $headers = []) { if (is_array($name)) { foreach ($name as $file) { $this->attach(...$file); } return $this; } $this->asMultipart(); $this->pendingFiles[] = array_filter([ 'name' => $name, 'contents' => $contents, 'headers' => $headers, 'filename' => $filename, ]); return $this; } /** * Indicate the request is a multi-part form request. * * @return $this */ public function asMultipart() { return $this->bodyFormat('multipart'); } /** * Specify the body format of the request. * * @param string $format * @return $this */ public function bodyFormat(string $format) { return tap($this, function () use ($format) { $this->bodyFormat = $format; }); } /** * Set the given query parameters in the request URI. * * @param array $parameters * @return $this */ public function withQueryParameters(array $parameters) { return tap($this, function () use ($parameters) { $this->options = array_merge_recursive($this->options, [ 'query' => $parameters, ]); }); } /** * Specify the request's content type. * * @param string $contentType * @return $this */ public function contentType(string $contentType) { $this->options['headers']['Content-Type'] = $contentType; return $this; } /** * Indicate that JSON should be returned by the server. * * @return $this */ public function acceptJson() { return $this->accept('application/json'); } /** * Indicate the type of content that should be returned by the server. * * @param string $contentType * @return $this */ public function accept($contentType) { return $this->withHeaders(['Accept' => $contentType]); } /** * Add the given headers to the request. * * @param array $headers * @return $this */ public function withHeaders(array $headers) { return tap($this, function () use ($headers) { $this->options = array_merge_recursive($this->options, [ 'headers' => $headers, ]); }); } /** * Add the given header to the request. * * @param string $name * @param mixed $value * @return $this */ public function withHeader($name, $value) { return $this->withHeaders([$name => $value]); } /** * Replace the given headers on the request. * * @param array $headers * @return $this */ public function replaceHeaders(array $headers) { $this->options['headers'] = array_merge($this->options['headers'] ?? [], $headers); return $this; } /** * Specify the basic authentication username and password for the request. * * @param string $username * @param string $password * @return $this */ public function withBasicAuth(string $username, string $password) { return tap($this, function () use ($username, $password) { $this->options['auth'] = [$username, $password]; }); } /** * Specify the digest authentication username and password for the request. * * @param string $username * @param string $password * @return $this */ public function withDigestAuth($username, $password) { return tap($this, function () use ($username, $password) { $this->options['auth'] = [$username, $password, 'digest']; }); } /** * Specify an authorization token for the request. * * @param string $token * @param string $type * @return $this */ public function withToken($token, $type = 'Bearer') { return tap($this, function () use ($token, $type) { $this->options['headers']['Authorization'] = trim($type.' '.$token); }); } /** * Specify the user agent for the request. * * @param string|bool $userAgent * @return $this */ public function withUserAgent($userAgent) { return tap($this, function () use ($userAgent) { $this->options['headers']['User-Agent'] = trim($userAgent); }); } /** * Specify the URL parameters that can be substituted into the request URL. * * @param array $parameters * @return $this */ public function withUrlParameters(array $parameters = []) { return tap($this, function () use ($parameters) { $this->urlParameters = $parameters; }); } /** * Specify the cookies that should be included with the request. * * @param array $cookies * @param string $domain * @return $this */ public function withCookies(array $cookies, string $domain) { return tap($this, function () use ($cookies, $domain) { $this->options = array_merge_recursive($this->options, [ 'cookies' => CookieJar::fromArray($cookies, $domain), ]); }); } /** * Specify the maximum number of redirects to allow. * * @param int $max * @return $this */ public function maxRedirects(int $max) { return tap($this, function () use ($max) { $this->options['allow_redirects']['max'] = $max; }); } /** * Indicate that redirects should not be followed. * * @return $this */ public function withoutRedirecting() { return tap($this, function () { $this->options['allow_redirects'] = false; }); } /** * Indicate that TLS certificates should not be verified. * * @return $this */ public function withoutVerifying() { return tap($this, function () { $this->options['verify'] = false; }); } /** * Specify the path where the body of the response should be stored. * * @param string|resource $to * @return $this */ public function sink($to) { return tap($this, function () use ($to) { $this->options['sink'] = $to; }); } /** * Specify the timeout (in seconds) for the request. * * @param int $seconds * @return $this */ public function timeout(int $seconds) { return tap($this, function () use ($seconds) { $this->options['timeout'] = $seconds; }); } /** * Specify the connect timeout (in seconds) for the request. * * @param int $seconds * @return $this */ public function connectTimeout(int $seconds) { return tap($this, function () use ($seconds) { $this->options['connect_timeout'] = $seconds; }); } /** * Specify the number of times the request should be attempted. * * @param int $times * @param Closure|int $sleepMilliseconds * @param callable|null $when * @param bool $throw * @return $this */ public function retry(int $times, Closure|int $sleepMilliseconds = 0, ?callable $when = null, bool $throw = true) { $this->tries = $times; $this->retryDelay = $sleepMilliseconds; $this->retryThrow = $throw; $this->retryWhenCallback = $when; return $this; } /** * Replace the specified options on the request. * * @param array $options * @return $this */ public function withOptions(array $options) { return tap($this, function () use ($options) { $this->options = array_replace_recursive( array_merge_recursive($this->options, Arr::only($options, $this->mergableOptions)), $options ); }); } /** * Add new middleware the client handler stack. * * @param callable $middleware * @return $this */ public function withMiddleware(callable $middleware) { $this->middleware->push($middleware); return $this; } /** * Add new request middleware the client handler stack. * * @param callable $middleware * @return $this */ public function withRequestMiddleware(callable $middleware) { $this->middleware->push(Middleware::mapRequest($middleware)); return $this; } /** * Add new response middleware the client handler stack. * * @param callable $middleware * @return $this */ public function withResponseMiddleware(callable $middleware) { $this->middleware->push(Middleware::mapResponse($middleware)); return $this; } /** * Add a new "before sending" callback to the request. * * @param callable $callback * @return $this */ public function beforeSending($callback) { return tap($this, function () use ($callback) { $this->beforeSendingCallbacks[] = $callback; }); } /** * Throw an exception if a server or client error occurs. * * @param callable|null $callback * @return $this */ public function throw(callable $callback = null) { $this->throwCallback = $callback ?: fn () => null; return $this; } /** * Throw an exception if a server or client error occurred and the given condition evaluates to true. * * @param callable|bool $condition * @param callable|null $throwCallback * @return $this */ public function throwIf($condition) { if (is_callable($condition)) { $this->throwIfCallback = $condition; } return $condition ? $this->throw(func_get_args()[1] ?? null) : $this; } /** * Throw an exception if a server or client error occurred and the given condition evaluates to false. * * @param bool $condition * @return $this */ public function throwUnless($condition) { return $this->throwIf(! $condition); } /** * Dump the request before sending. * * @return $this */ public function dump() { $values = func_get_args(); return $this->beforeSending(function (Request $request, array $options) use ($values) { foreach (array_merge($values, [$request, $options]) as $value) { VarDumper::dump($value); } }); } /** * Dump the request before sending and end the script. * * @return $this */ public function dd() { $values = func_get_args(); return $this->beforeSending(function (Request $request, array $options) use ($values) { foreach (array_merge($values, [$request, $options]) as $value) { VarDumper::dump($value); } exit(1); }); } /** * Issue a GET request to the given URL. * * @param string $url * @param array|string|null $query * @return \Illuminate\Http\Client\Response */ public function get(string $url, $query = null) { return $this->send('GET', $url, func_num_args() === 1 ? [] : [ 'query' => $query, ]); } /** * Issue a HEAD request to the given URL. * * @param string $url * @param array|string|null $query * @return \Illuminate\Http\Client\Response */ public function head(string $url, $query = null) { return $this->send('HEAD', $url, func_num_args() === 1 ? [] : [ 'query' => $query, ]); } /** * Issue a POST request to the given URL. * * @param string $url * @param array $data * @return \Illuminate\Http\Client\Response */ public function post(string $url, $data = []) { return $this->send('POST', $url, [ $this->bodyFormat => $data, ]); } /** * Issue a PATCH request to the given URL. * * @param string $url * @param array $data * @return \Illuminate\Http\Client\Response */ public function patch(string $url, $data = []) { return $this->send('PATCH', $url, [ $this->bodyFormat => $data, ]); } /** * Issue a PUT request to the given URL. * * @param string $url * @param array $data * @return \Illuminate\Http\Client\Response */ public function put(string $url, $data = []) { return $this->send('PUT', $url, [ $this->bodyFormat => $data, ]); } /** * Issue a DELETE request to the given URL. * * @param string $url * @param array $data * @return \Illuminate\Http\Client\Response */ public function delete(string $url, $data = []) { return $this->send('DELETE', $url, empty($data) ? [] : [ $this->bodyFormat => $data, ]); } /** * Send a pool of asynchronous requests concurrently. * * @param callable $callback * @return array */ public function pool(callable $callback) { $results = []; $requests = tap(new Pool($this->factory), $callback)->getRequests(); foreach ($requests as $key => $item) { $results[$key] = $item instanceof static ? $item->getPromise()->wait() : $item->wait(); } return $results; } /** * Send the request to the given URL. * * @param string $method * @param string $url * @param array $options * @return \Illuminate\Http\Client\Response * * @throws \Exception */ public function send(string $method, string $url, array $options = []) { if (! Str::startsWith($url, ['http://', 'https://'])) { $url = ltrim(rtrim($this->baseUrl, '/').'/'.ltrim($url, '/'), '/'); } $url = $this->expandUrlParameters($url); $options = $this->parseHttpOptions($options); [$this->pendingBody, $this->pendingFiles] = [null, []]; if ($this->async) { return $this->makePromise($method, $url, $options); } $shouldRetry = null; return retry($this->tries ?? 1, function ($attempt) use ($method, $url, $options, &$shouldRetry) { try { return tap(new Response($this->sendRequest($method, $url, $options)), function ($response) use ($attempt, &$shouldRetry) { $this->populateResponse($response); $this->dispatchResponseReceivedEvent($response); if (! $response->successful()) { try { $shouldRetry = $this->retryWhenCallback ? call_user_func($this->retryWhenCallback, $response->toException(), $this) : true; } catch (Exception $exception) { $shouldRetry = false; throw $exception; } if ($this->throwCallback && ($this->throwIfCallback === null || call_user_func($this->throwIfCallback, $response))) { $response->throw($this->throwCallback); } if ($attempt < $this->tries && $shouldRetry) { $response->throw(); } if ($this->tries > 1 && $this->retryThrow) { $response->throw(); } } }); } catch (ConnectException $e) { $this->dispatchConnectionFailedEvent(); throw new ConnectionException($e->getMessage(), 0, $e); } }, $this->retryDelay ?? 100, function ($exception) use (&$shouldRetry) { $result = $shouldRetry ?? ($this->retryWhenCallback ? call_user_func($this->retryWhenCallback, $exception, $this) : true); $shouldRetry = null; return $result; }); } /** * Substitute the URL parameters in the given URL. * * @param string $url * @return string */ protected function expandUrlParameters(string $url) { return UriTemplate::expand($url, $this->urlParameters); } /** * Parse the given HTTP options and set the appropriate additional options. * * @param array $options * @return array */ protected function parseHttpOptions(array $options) { if (isset($options[$this->bodyFormat])) { if ($this->bodyFormat === 'multipart') { $options[$this->bodyFormat] = $this->parseMultipartBodyFormat($options[$this->bodyFormat]); } elseif ($this->bodyFormat === 'body') { $options[$this->bodyFormat] = $this->pendingBody; } if (is_array($options[$this->bodyFormat])) { $options[$this->bodyFormat] = array_merge( $options[$this->bodyFormat], $this->pendingFiles ); } } else { $options[$this->bodyFormat] = $this->pendingBody; } return collect($options)->map(function ($value, $key) { if ($key === 'json' && $value instanceof JsonSerializable) { return $value; } return $value instanceof Arrayable ? $value->toArray() : $value; })->all(); } /** * Parse multi-part form data. * * @param array $data * @return array|array[] */ protected function parseMultipartBodyFormat(array $data) { return collect($data)->map(function ($value, $key) { return is_array($value) ? $value : ['name' => $key, 'contents' => $value]; })->values()->all(); } /** * Send an asynchronous request to the given URL. * * @param string $method * @param string $url * @param array $options * @return \GuzzleHttp\Promise\PromiseInterface */ protected function makePromise(string $method, string $url, array $options = []) { return $this->promise = $this->sendRequest($method, $url, $options) ->then(function (MessageInterface $message) { return tap(new Response($message), function ($response) { $this->populateResponse($response); $this->dispatchResponseReceivedEvent($response); }); }) ->otherwise(function (TransferException $e) { return $e instanceof RequestException && $e->hasResponse() ? $this->populateResponse(new Response($e->getResponse())) : $e; }); } /** * Send a request either synchronously or asynchronously. * * @param string $method * @param string $url * @param array $options * @return \Psr\Http\Message\MessageInterface|\GuzzleHttp\Promise\PromiseInterface * * @throws \Exception */ protected function sendRequest(string $method, string $url, array $options = []) { $clientMethod = $this->async ? 'requestAsync' : 'request'; $laravelData = $this->parseRequestData($method, $url, $options); $onStats = function ($transferStats) { if (($callback = ($this->options['on_stats'] ?? false)) instanceof Closure) { $transferStats = $callback($transferStats) ?: $transferStats; } $this->transferStats = $transferStats; }; return $this->buildClient()->$clientMethod($method, $url, $this->mergeOptions([ 'laravel_data' => $laravelData, 'on_stats' => $onStats, ], $options)); } /** * Get the request data as an array so that we can attach it to the request for convenient assertions. * * @param string $method * @param string $url * @param array $options * @return array */ protected function parseRequestData($method, $url, array $options) { if ($this->bodyFormat === 'body') { return []; } $laravelData = $options[$this->bodyFormat] ?? $options['query'] ?? []; $urlString = Str::of($url); if (empty($laravelData) && $method === 'GET' && $urlString->contains('?')) { $laravelData = (string) $urlString->after('?'); } if (is_string($laravelData)) { parse_str($laravelData, $parsedData); $laravelData = is_array($parsedData) ? $parsedData : []; } if ($laravelData instanceof JsonSerializable) { $laravelData = $laravelData->jsonSerialize(); } return is_array($laravelData) ? $laravelData : []; } /** * Populate the given response with additional data. * * @param \Illuminate\Http\Client\Response $response * @return \Illuminate\Http\Client\Response */ protected function populateResponse(Response $response) { $response->cookies = $this->cookies; $response->transferStats = $this->transferStats; return $response; } /** * Build the Guzzle client. * * @return \GuzzleHttp\Client */ public function buildClient() { return $this->client ?? $this->createClient($this->buildHandlerStack()); } /** * Determine if a reusable client is required. * * @return bool */ protected function requestsReusableClient() { return ! is_null($this->client) || $this->async; } /** * Retrieve a reusable Guzzle client. * * @return \GuzzleHttp\Client */ protected function getReusableClient() { return $this->client = $this->client ?: $this->createClient($this->buildHandlerStack()); } /** * Create new Guzzle client. * * @param \GuzzleHttp\HandlerStack $handlerStack * @return \GuzzleHttp\Client */ public function createClient($handlerStack) { return new Client([ 'handler' => $handlerStack, 'cookies' => true, ]); } /** * Build the Guzzle client handler stack. * * @return \GuzzleHttp\HandlerStack */ public function buildHandlerStack() { return $this->pushHandlers(HandlerStack::create($this->handler)); } /** * Add the necessary handlers to the given handler stack. * * @param \GuzzleHttp\HandlerStack $handlerStack * @return \GuzzleHttp\HandlerStack */ public function pushHandlers($handlerStack) { return tap($handlerStack, function ($stack) { $stack->push($this->buildBeforeSendingHandler()); $this->middleware->each(function ($middleware) use ($stack) { $stack->push($middleware); }); $stack->push($this->buildRecorderHandler()); $stack->push($this->buildStubHandler()); }); } /** * Build the before sending handler. * * @return \Closure */ public function buildBeforeSendingHandler() { return function ($handler) { return function ($request, $options) use ($handler) { return $handler($this->runBeforeSendingCallbacks($request, $options), $options); }; }; } /** * Build the recorder handler. * * @return \Closure */ public function buildRecorderHandler() { return function ($handler) { return function ($request, $options) use ($handler) { $promise = $handler($request, $options); return $promise->then(function ($response) use ($request, $options) { $this->factory?->recordRequestResponsePair( (new Request($request))->withData($options['laravel_data']), new Response($response) ); return $response; }); }; }; } /** * Build the stub handler. * * @return \Closure */ public function buildStubHandler() { return function ($handler) { return function ($request, $options) use ($handler) { $response = ($this->stubCallbacks ?? collect()) ->map ->__invoke((new Request($request))->withData($options['laravel_data']), $options) ->filter() ->first(); if (is_null($response)) { if ($this->preventStrayRequests) { throw new RuntimeException('Attempted request to ['.(string) $request->getUri().'] without a matching fake.'); } return $handler($request, $options); } $response = is_array($response) ? Factory::response($response) : $response; $sink = $options['sink'] ?? null; if ($sink) { $response->then($this->sinkStubHandler($sink)); } return $response; }; }; } /** * Get the sink stub handler callback. * * @param string $sink * @return \Closure */ protected function sinkStubHandler($sink) { return function ($response) use ($sink) { $body = $response->getBody()->getContents(); if (is_string($sink)) { file_put_contents($sink, $body); return; } fwrite($sink, $body); rewind($sink); }; } /** * Execute the "before sending" callbacks. * * @param \GuzzleHttp\Psr7\RequestInterface $request * @param array $options * @return \GuzzleHttp\Psr7\RequestInterface */ public function runBeforeSendingCallbacks($request, array $options) { return tap($request, function (&$request) use ($options) { $this->beforeSendingCallbacks->each(function ($callback) use (&$request, $options) { $callbackResult = call_user_func( $callback, (new Request($request))->withData($options['laravel_data']), $options, $this ); if ($callbackResult instanceof RequestInterface) { $request = $callbackResult; } elseif ($callbackResult instanceof Request) { $request = $callbackResult->toPsrRequest(); } }); }); } /** * Replace the given options with the current request options. * * @param array ...$options * @return array */ public function mergeOptions(...$options) { return array_replace_recursive( array_merge_recursive($this->options, Arr::only($options, $this->mergableOptions)), ...$options ); } /** * Register a stub callable that will intercept requests and be able to return stub responses. * * @param callable $callback * @return $this */ public function stub($callback) { $this->stubCallbacks = collect($callback); return $this; } /** * Indicate that an exception should be thrown if any request is not faked. * * @param bool $prevent * @return $this */ public function preventStrayRequests($prevent = true) { $this->preventStrayRequests = $prevent; return $this; } /** * Toggle asynchronicity in requests. * * @param bool $async * @return $this */ public function async(bool $async = true) { $this->async = $async; return $this; } /** * Retrieve the pending request promise. * * @return \GuzzleHttp\Promise\PromiseInterface|null */ public function getPromise() { return $this->promise; } /** * Dispatch the RequestSending event if a dispatcher is available. * * @return void */ protected function dispatchRequestSendingEvent() { if ($dispatcher = $this->factory?->getDispatcher()) { $dispatcher->dispatch(new RequestSending($this->request)); } } /** * Dispatch the ResponseReceived event if a dispatcher is available. * * @param \Illuminate\Http\Client\Response $response * @return void */ protected function dispatchResponseReceivedEvent(Response $response) { if (! ($dispatcher = $this->factory?->getDispatcher()) || ! $this->request) { return; } $dispatcher->dispatch(new ResponseReceived($this->request, $response)); } /** * Dispatch the ConnectionFailed event if a dispatcher is available. * * @return void */ protected function dispatchConnectionFailedEvent() { if ($dispatcher = $this->factory?->getDispatcher()) { $dispatcher->dispatch(new ConnectionFailed($this->request)); } } /** * Set the client instance. * * @param \GuzzleHttp\Client $client * @return $this */ public function setClient(Client $client) { $this->client = $client; return $this; } /** * Create a new client instance using the given handler. * * @param callable $handler * @return $this */ public function setHandler($handler) { $this->handler = $handler; return $this; } /** * Get the pending request options. * * @return array */ public function getOptions() { return $this->options; } } PK\\b Client/ResponseSequence.phpnu[responses = $responses; } /** * Push a response to the sequence. * * @param string|array|null $body * @param int $status * @param array $headers * @return $this */ public function push($body = null, int $status = 200, array $headers = []) { return $this->pushResponse( Factory::response($body, $status, $headers) ); } /** * Push a response with the given status code to the sequence. * * @param int $status * @param array $headers * @return $this */ public function pushStatus(int $status, array $headers = []) { return $this->pushResponse( Factory::response('', $status, $headers) ); } /** * Push response with the contents of a file as the body to the sequence. * * @param string $filePath * @param int $status * @param array $headers * @return $this */ public function pushFile(string $filePath, int $status = 200, array $headers = []) { $string = file_get_contents($filePath); return $this->pushResponse( Factory::response($string, $status, $headers) ); } /** * Push a response to the sequence. * * @param mixed $response * @return $this */ public function pushResponse($response) { $this->responses[] = $response; return $this; } /** * Make the sequence return a default response when it is empty. * * @param \GuzzleHttp\Promise\PromiseInterface|\Closure $response * @return $this */ public function whenEmpty($response) { $this->failWhenEmpty = false; $this->emptyResponse = $response; return $this; } /** * Make the sequence return a default response when it is empty. * * @return $this */ public function dontFailWhenEmpty() { return $this->whenEmpty(Factory::response()); } /** * Indicate that this sequence has depleted all of its responses. * * @return bool */ public function isEmpty() { return count($this->responses) === 0; } /** * Get the next response in the sequence. * * @return mixed * * @throws \OutOfBoundsException */ public function __invoke() { if ($this->failWhenEmpty && $this->isEmpty()) { throw new OutOfBoundsException('A request was made, but the response sequence is empty.'); } if (! $this->failWhenEmpty && $this->isEmpty()) { return value($this->emptyResponse ?? Factory::response()); } return array_shift($this->responses); } } PK\ YkkClient/ConnectionException.phpnu[dispatcher = $dispatcher; $this->stubCallbacks = collect(); } /** * Add middleware to apply to every request. * * @param callable $middleware * @return $this */ public function globalMiddleware($middleware) { $this->globalMiddleware[] = $middleware; return $this; } /** * Add request middleware to apply to every request. * * @param callable $middleware * @return $this */ public function globalRequestMiddleware($middleware) { $this->globalMiddleware[] = Middleware::mapRequest($middleware); return $this; } /** * Add response middleware to apply to every request. * * @param callable $middleware * @return $this */ public function globalResponseMiddleware($middleware) { $this->globalMiddleware[] = Middleware::mapResponse($middleware); return $this; } /** * Create a new response instance for use during stubbing. * * @param array|string|null $body * @param int $status * @param array $headers * @return \GuzzleHttp\Promise\PromiseInterface */ public static function response($body = null, $status = 200, $headers = []) { if (is_array($body)) { $body = json_encode($body); $headers['Content-Type'] = 'application/json'; } $response = new Psr7Response($status, $headers, $body); return Create::promiseFor($response); } /** * Get an invokable object that returns a sequence of responses in order for use during stubbing. * * @param array $responses * @return \Illuminate\Http\Client\ResponseSequence */ public function sequence(array $responses = []) { return $this->responseSequences[] = new ResponseSequence($responses); } /** * Register a stub callable that will intercept requests and be able to return stub responses. * * @param callable|array|null $callback * @return $this */ public function fake($callback = null) { $this->record(); $this->recorded = []; if (is_null($callback)) { $callback = function () { return static::response(); }; } if (is_array($callback)) { foreach ($callback as $url => $callable) { $this->stubUrl($url, $callable); } return $this; } $this->stubCallbacks = $this->stubCallbacks->merge(collect([ function ($request, $options) use ($callback) { $response = $callback instanceof Closure ? $callback($request, $options) : $callback; if ($response instanceof PromiseInterface) { $options['on_stats'](new TransferStats( $request->toPsrRequest(), $response->wait(), )); } return $response; }, ])); return $this; } /** * Register a response sequence for the given URL pattern. * * @param string $url * @return \Illuminate\Http\Client\ResponseSequence */ public function fakeSequence($url = '*') { return tap($this->sequence(), function ($sequence) use ($url) { $this->fake([$url => $sequence]); }); } /** * Stub the given URL using the given callback. * * @param string $url * @param \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface|callable $callback * @return $this */ public function stubUrl($url, $callback) { return $this->fake(function ($request, $options) use ($url, $callback) { if (! Str::is(Str::start($url, '*'), $request->url())) { return; } return $callback instanceof Closure || $callback instanceof ResponseSequence ? $callback($request, $options) : $callback; }); } /** * Indicate that an exception should be thrown if any request is not faked. * * @param bool $prevent * @return $this */ public function preventStrayRequests($prevent = true) { $this->preventStrayRequests = $prevent; return $this; } /** * Indicate that an exception should not be thrown if any request is not faked. * * @return $this */ public function allowStrayRequests() { return $this->preventStrayRequests(false); } /** * Begin recording request / response pairs. * * @return $this */ protected function record() { $this->recording = true; return $this; } /** * Record a request response pair. * * @param \Illuminate\Http\Client\Request $request * @param \Illuminate\Http\Client\Response $response * @return void */ public function recordRequestResponsePair($request, $response) { if ($this->recording) { $this->recorded[] = [$request, $response]; } } /** * Assert that a request / response pair was recorded matching a given truth test. * * @param callable $callback * @return void */ public function assertSent($callback) { PHPUnit::assertTrue( $this->recorded($callback)->count() > 0, 'An expected request was not recorded.' ); } /** * Assert that the given request was sent in the given order. * * @param array $callbacks * @return void */ public function assertSentInOrder($callbacks) { $this->assertSentCount(count($callbacks)); foreach ($callbacks as $index => $url) { $callback = is_callable($url) ? $url : function ($request) use ($url) { return $request->url() == $url; }; PHPUnit::assertTrue($callback( $this->recorded[$index][0], $this->recorded[$index][1] ), 'An expected request (#'.($index + 1).') was not recorded.'); } } /** * Assert that a request / response pair was not recorded matching a given truth test. * * @param callable $callback * @return void */ public function assertNotSent($callback) { PHPUnit::assertFalse( $this->recorded($callback)->count() > 0, 'Unexpected request was recorded.' ); } /** * Assert that no request / response pair was recorded. * * @return void */ public function assertNothingSent() { PHPUnit::assertEmpty( $this->recorded, 'Requests were recorded.' ); } /** * Assert how many requests have been recorded. * * @param int $count * @return void */ public function assertSentCount($count) { PHPUnit::assertCount($count, $this->recorded); } /** * Assert that every created response sequence is empty. * * @return void */ public function assertSequencesAreEmpty() { foreach ($this->responseSequences as $responseSequence) { PHPUnit::assertTrue( $responseSequence->isEmpty(), 'Not all response sequences are empty.' ); } } /** * Get a collection of the request / response pairs matching the given truth test. * * @param callable $callback * @return \Illuminate\Support\Collection */ public function recorded($callback = null) { if (empty($this->recorded)) { return collect(); } $callback = $callback ?: function () { return true; }; return collect($this->recorded)->filter(function ($pair) use ($callback) { return $callback($pair[0], $pair[1]); }); } /** * Create a new pending request instance for this factory. * * @return \Illuminate\Http\Client\PendingRequest */ protected function newPendingRequest() { return new PendingRequest($this, $this->globalMiddleware); } /** * Get the current event dispatcher implementation. * * @return \Illuminate\Contracts\Events\Dispatcher|null */ public function getDispatcher() { return $this->dispatcher; } /** * Execute a method against a new pending request instance. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { if (static::hasMacro($method)) { return $this->macroCall($method, $parameters); } return tap($this->newPendingRequest(), function ($request) { $request->stub($this->stubCallbacks)->preventStrayRequests($this->preventStrayRequests); })->{$method}(...$parameters); } } PK\PgClient/error_lognu[[14-Jun-2026 21:28:36 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Conditionable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php on line 30 [14-Jun-2026 21:28:46 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Macroable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ResponseSequence.php on line 8 [15-Jun-2026 01:25:06 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Client\HttpClientException" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ConnectionException.php:5 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ConnectionException.php on line 5 [16-Jun-2026 08:23:32 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Macroable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ResponseSequence.php on line 8 [16-Jun-2026 16:01:54 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Conditionable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php on line 30 [17-Jun-2026 09:12:09 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Client\HttpClientException" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/RequestException.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/RequestException.php on line 7 [17-Jun-2026 09:15:50 UTC] PHP Fatal error: Trait "Illuminate\Http\Client\Concerns\DeterminesStatusCode" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/Response.php on line 10 [17-Jun-2026 10:12:06 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Macroable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/Factory.php on line 19 [17-Jun-2026 10:51:53 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Macroable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/Request.php on line 10 [17-Jun-2026 20:14:53 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Client\HttpClientException" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ConnectionException.php:5 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ConnectionException.php on line 5 [18-Jun-2026 11:12:31 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Macroable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ResponseSequence.php on line 8 [18-Jun-2026 13:53:58 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Conditionable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php on line 30 [19-Jun-2026 08:44:28 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Client\HttpClientException" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ConnectionException.php:5 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/ConnectionException.php on line 5 [19-Jun-2026 09:00:55 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Macroable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/Request.php on line 10 [19-Jun-2026 21:47:05 UTC] PHP Fatal error: Trait "Illuminate\Http\Client\Concerns\DeterminesStatusCode" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/Response.php on line 10 [20-Jun-2026 03:26:02 UTC] PHP Fatal error: Uncaught Error: Class "Illuminate\Http\Client\HttpClientException" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/RequestException.php:7 Stack trace: #0 {main} thrown in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/RequestException.php on line 7 [20-Jun-2026 23:53:09 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Macroable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/Factory.php on line 19 [21-Jun-2026 03:11:34 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Conditionable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/PendingRequest.php on line 30 [22-Jun-2026 08:42:21 UTC] PHP Fatal error: Trait "Illuminate\Support\Traits\Macroable" not found in /home/cardxfeb/public_html/vendor/laravel/framework/src/Illuminate/Http/Client/Factory.php on line 19 PK\g?BFF Request.phpnu[getMethod(); } /** * Get the root URL for the application. * * @return string */ public function root() { return rtrim($this->getSchemeAndHttpHost().$this->getBaseUrl(), '/'); } /** * Get the URL (no query string) for the request. * * @return string */ public function url() { return rtrim(preg_replace('/\?.*/', '', $this->getUri()), '/'); } /** * Get the full URL for the request. * * @return string */ public function fullUrl() { $query = $this->getQueryString(); $question = $this->getBaseUrl().$this->getPathInfo() === '/' ? '/?' : '?'; return $query ? $this->url().$question.$query : $this->url(); } /** * Get the full URL for the request with the added query string parameters. * * @param array $query * @return string */ public function fullUrlWithQuery(array $query) { $question = $this->getBaseUrl().$this->getPathInfo() === '/' ? '/?' : '?'; return count($this->query()) > 0 ? $this->url().$question.Arr::query(array_merge($this->query(), $query)) : $this->fullUrl().$question.Arr::query($query); } /** * Get the full URL for the request without the given query string parameters. * * @param array|string $keys * @return string */ public function fullUrlWithoutQuery($keys) { $query = Arr::except($this->query(), $keys); $question = $this->getBaseUrl().$this->getPathInfo() === '/' ? '/?' : '?'; return count($query) > 0 ? $this->url().$question.Arr::query($query) : $this->url(); } /** * Get the current path info for the request. * * @return string */ public function path() { $pattern = trim($this->getPathInfo(), '/'); return $pattern === '' ? '/' : $pattern; } /** * Get the current decoded path info for the request. * * @return string */ public function decodedPath() { return rawurldecode($this->path()); } /** * Get a segment from the URI (1 based index). * * @param int $index * @param string|null $default * @return string|null */ public function segment($index, $default = null) { return Arr::get($this->segments(), $index - 1, $default); } /** * Get all of the segments for the request path. * * @return array */ public function segments() { $segments = explode('/', $this->decodedPath()); return array_values(array_filter($segments, function ($value) { return $value !== ''; })); } /** * Determine if the current request URI matches a pattern. * * @param mixed ...$patterns * @return bool */ public function is(...$patterns) { $path = $this->decodedPath(); return collect($patterns)->contains(fn ($pattern) => Str::is($pattern, $path)); } /** * Determine if the route name matches a given pattern. * * @param mixed ...$patterns * @return bool */ public function routeIs(...$patterns) { return $this->route() && $this->route()->named(...$patterns); } /** * Determine if the current request URL and query string match a pattern. * * @param mixed ...$patterns * @return bool */ public function fullUrlIs(...$patterns) { $url = $this->fullUrl(); return collect($patterns)->contains(fn ($pattern) => Str::is($pattern, $url)); } /** * Get the host name. * * @return string */ public function host() { return $this->getHost(); } /** * Get the HTTP host being requested. * * @return string */ public function httpHost() { return $this->getHttpHost(); } /** * Get the scheme and HTTP host. * * @return string */ public function schemeAndHttpHost() { return $this->getSchemeAndHttpHost(); } /** * Determine if the request is the result of an AJAX call. * * @return bool */ public function ajax() { return $this->isXmlHttpRequest(); } /** * Determine if the request is the result of a PJAX call. * * @return bool */ public function pjax() { return $this->headers->get('X-PJAX') == true; } /** * Determine if the request is the result of a prefetch call. * * @return bool */ public function prefetch() { return strcasecmp($this->server->get('HTTP_X_MOZ') ?? '', 'prefetch') === 0 || strcasecmp($this->headers->get('Purpose') ?? '', 'prefetch') === 0; } /** * Determine if the request is over HTTPS. * * @return bool */ public function secure() { return $this->isSecure(); } /** * Get the client IP address. * * @return string|null */ public function ip() { return $this->getClientIp(); } /** * Get the client IP addresses. * * @return array */ public function ips() { return $this->getClientIps(); } /** * Get the client user agent. * * @return string|null */ public function userAgent() { return $this->headers->get('User-Agent'); } /** * Merge new input into the current request's input array. * * @param array $input * @return $this */ public function merge(array $input) { $this->getInputSource()->add($input); return $this; } /** * Merge new input into the request's input, but only when that key is missing from the request. * * @param array $input * @return $this */ public function mergeIfMissing(array $input) { return $this->merge(collect($input)->filter(function ($value, $key) { return $this->missing($key); })->toArray()); } /** * Replace the input for the current request. * * @param array $input * @return $this */ public function replace(array $input) { $this->getInputSource()->replace($input); return $this; } /** * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel. * * Instead, you may use the "input" method. * * @param string $key * @param mixed $default * @return mixed */ public function get(string $key, mixed $default = null): mixed { return parent::get($key, $default); } /** * Get the JSON payload for the request. * * @param string|null $key * @param mixed $default * @return \Symfony\Component\HttpFoundation\ParameterBag|mixed */ public function json($key = null, $default = null) { if (! isset($this->json)) { $this->json = new InputBag((array) json_decode($this->getContent(), true)); } if (is_null($key)) { return $this->json; } return data_get($this->json->all(), $key, $default); } /** * Get the input source for the request. * * @return \Symfony\Component\HttpFoundation\ParameterBag */ protected function getInputSource() { if ($this->isJson()) { return $this->json(); } return in_array($this->getRealMethod(), ['GET', 'HEAD']) ? $this->query : $this->request; } /** * Create a new request instance from the given Laravel request. * * @param \Illuminate\Http\Request $from * @param \Illuminate\Http\Request|null $to * @return static */ public static function createFrom(self $from, $to = null) { $request = $to ?: new static; $files = array_filter($from->files->all()); $request->initialize( $from->query->all(), $from->request->all(), $from->attributes->all(), $from->cookies->all(), $files, $from->server->all(), $from->getContent() ); $request->headers->replace($from->headers->all()); $request->setRequestLocale($from->getLocale()); $request->setDefaultRequestLocale($from->getDefaultLocale()); $request->setJson($from->json()); if ($from->hasSession() && $session = $from->session()) { $request->setLaravelSession($session); } $request->setUserResolver($from->getUserResolver()); $request->setRouteResolver($from->getRouteResolver()); return $request; } /** * Create an Illuminate request from a Symfony instance. * * @param \Symfony\Component\HttpFoundation\Request $request * @return static */ public static function createFromBase(SymfonyRequest $request) { $newRequest = (new static)->duplicate( $request->query->all(), $request->request->all(), $request->attributes->all(), $request->cookies->all(), $request->files->all(), $request->server->all() ); $newRequest->headers->replace($request->headers->all()); $newRequest->content = $request->content; if ($newRequest->isJson()) { $newRequest->request = $newRequest->json(); } return $newRequest; } /** * {@inheritdoc} * * @return static */ public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null): static { return parent::duplicate($query, $request, $attributes, $cookies, $this->filterFiles($files), $server); } /** * Filter the given array of files, removing any empty values. * * @param mixed $files * @return mixed */ protected function filterFiles($files) { if (! $files) { return; } foreach ($files as $key => $file) { if (is_array($file)) { $files[$key] = $this->filterFiles($files[$key]); } if (empty($files[$key])) { unset($files[$key]); } } return $files; } /** * {@inheritdoc} */ public function hasSession(bool $skipIfUninitialized = false): bool { return ! is_null($this->session); } /** * {@inheritdoc} */ public function getSession(): SessionInterface { return $this->hasSession() ? new SymfonySessionDecorator($this->session()) : throw new SessionNotFoundException; } /** * Get the session associated with the request. * * @return \Illuminate\Contracts\Session\Session * * @throws \RuntimeException */ public function session() { if (! $this->hasSession()) { throw new RuntimeException('Session store not set on request.'); } return $this->session; } /** * Set the session instance on the request. * * @param \Illuminate\Contracts\Session\Session $session * @return void */ public function setLaravelSession($session) { $this->session = $session; } /** * Set the locale for the request instance. * * @param string $locale * @return void */ public function setRequestLocale(string $locale) { $this->locale = $locale; } /** * Set the default locale for the request instance. * * @param string $locale * @return void */ public function setDefaultRequestLocale(string $locale) { $this->defaultLocale = $locale; } /** * Get the user making the request. * * @param string|null $guard * @return mixed */ public function user($guard = null) { return call_user_func($this->getUserResolver(), $guard); } /** * Get the route handling the request. * * @param string|null $param * @param mixed $default * @return \Illuminate\Routing\Route|object|string|null */ public function route($param = null, $default = null) { $route = call_user_func($this->getRouteResolver()); if (is_null($route) || is_null($param)) { return $route; } return $route->parameter($param, $default); } /** * Get a unique fingerprint for the request / route / IP address. * * @return string * * @throws \RuntimeException */ public function fingerprint() { if (! $route = $this->route()) { throw new RuntimeException('Unable to generate fingerprint. Route unavailable.'); } return sha1(implode('|', array_merge( $route->methods(), [$route->getDomain(), $route->uri(), $this->ip()] ))); } /** * Set the JSON payload for the request. * * @param \Symfony\Component\HttpFoundation\ParameterBag $json * @return $this */ public function setJson($json) { $this->json = $json; return $this; } /** * Get the user resolver callback. * * @return \Closure */ public function getUserResolver() { return $this->userResolver ?: function () { // }; } /** * Set the user resolver callback. * * @param \Closure $callback * @return $this */ public function setUserResolver(Closure $callback) { $this->userResolver = $callback; return $this; } /** * Get the route resolver callback. * * @return \Closure */ public function getRouteResolver() { return $this->routeResolver ?: function () { // }; } /** * Set the route resolver callback. * * @param \Closure $callback * @return $this */ public function setRouteResolver(Closure $callback) { $this->routeResolver = $callback; return $this; } /** * Get all of the input and files for the request. * * @return array */ public function toArray(): array { return $this->all(); } /** * Determine if the given offset exists. * * @param string $offset * @return bool */ public function offsetExists($offset): bool { $route = $this->route(); return Arr::has( $this->all() + ($route ? $route->parameters() : []), $offset ); } /** * Get the value at the given offset. * * @param string $offset * @return mixed */ public function offsetGet($offset): mixed { return $this->__get($offset); } /** * Set the value at the given offset. * * @param string $offset * @param mixed $value * @return void */ public function offsetSet($offset, $value): void { $this->getInputSource()->set($offset, $value); } /** * Remove the value at the given offset. * * @param string $offset * @return void */ public function offsetUnset($offset): void { $this->getInputSource()->remove($offset); } /** * Check if an input element is set on the request. * * @param string $key * @return bool */ public function __isset($key) { return ! is_null($this->__get($key)); } /** * Get an input element from the request. * * @param string $key * @return mixed */ public function __get($key) { return Arr::get($this->all(), $key, fn () => $this->route($key)); } } PK\lConcerns/CanBePrecognitive.phpnu[headers->has('Precognition-Validate-Only')) { return $rules; } return Collection::make($rules) ->only(explode(',', $this->header('Precognition-Validate-Only'))) ->all(); } /** * Determine if the request is attempting to be precognitive. * * @return bool */ public function isAttemptingPrecognition() { return $this->header('Precognition') === 'true'; } /** * Determine if the request is precognitive. * * @return bool */ public function isPrecognitive() { return $this->attributes->get('precognitive', false); } } PK\f#Concerns/InteractsWithFlashData.phpnu[getAttribute($key) : $default; return $this->hasSession() ? $this->session()->getOldInput($key, $default) : $default; } /** * Flash the input for the current request to the session. * * @return void */ public function flash() { $this->session()->flashInput($this->input()); } /** * Flash only some of the input to the session. * * @param array|mixed $keys * @return void */ public function flashOnly($keys) { $this->session()->flashInput( $this->only(is_array($keys) ? $keys : func_get_args()) ); } /** * Flash only some of the input to the session. * * @param array|mixed $keys * @return void */ public function flashExcept($keys) { $this->session()->flashInput( $this->except(is_array($keys) ? $keys : func_get_args()) ); } /** * Flush all of the old input from the session. * * @return void */ public function flush() { $this->session()->flashInput([]); } } PK\, &Concerns/InteractsWithContentTypes.phpnu[header('CONTENT_TYPE') ?? '', ['/json', '+json']); } /** * Determine if the current request probably expects a JSON response. * * @return bool */ public function expectsJson() { return ($this->ajax() && ! $this->pjax() && $this->acceptsAnyContentType()) || $this->wantsJson(); } /** * Determine if the current request is asking for JSON. * * @return bool */ public function wantsJson() { $acceptable = $this->getAcceptableContentTypes(); return isset($acceptable[0]) && Str::contains(strtolower($acceptable[0]), ['/json', '+json']); } /** * Determines whether the current requests accepts a given content type. * * @param string|array $contentTypes * @return bool */ public function accepts($contentTypes) { $accepts = $this->getAcceptableContentTypes(); if (count($accepts) === 0) { return true; } $types = (array) $contentTypes; foreach ($accepts as $accept) { if ($accept === '*/*' || $accept === '*') { return true; } foreach ($types as $type) { $accept = strtolower($accept); $type = strtolower($type); if ($this->matchesType($accept, $type) || $accept === strtok($type, '/').'/*') { return true; } } } return false; } /** * Return the most suitable content type from the given array based on content negotiation. * * @param string|array $contentTypes * @return string|null */ public function prefers($contentTypes) { $accepts = $this->getAcceptableContentTypes(); $contentTypes = (array) $contentTypes; foreach ($accepts as $accept) { if (in_array($accept, ['*/*', '*'])) { return $contentTypes[0]; } foreach ($contentTypes as $contentType) { $type = $contentType; if (! is_null($mimeType = $this->getMimeType($contentType))) { $type = $mimeType; } $accept = strtolower($accept); $type = strtolower($type); if ($this->matchesType($type, $accept) || $accept === strtok($type, '/').'/*') { return $contentType; } } } } /** * Determine if the current request accepts any content type. * * @return bool */ public function acceptsAnyContentType() { $acceptable = $this->getAcceptableContentTypes(); return count($acceptable) === 0 || ( isset($acceptable[0]) && ($acceptable[0] === '*/*' || $acceptable[0] === '*') ); } /** * Determines whether a request accepts JSON. * * @return bool */ public function acceptsJson() { return $this->accepts('application/json'); } /** * Determines whether a request accepts HTML. * * @return bool */ public function acceptsHtml() { return $this->accepts('text/html'); } /** * Determine if the given content types match. * * @param string $actual * @param string $type * @return bool */ public static function matchesType($actual, $type) { if ($actual === $type) { return true; } $split = explode('/', $actual); return isset($split[1]) && preg_match('#'.preg_quote($split[0], '#').'/.+\+'.preg_quote($split[1], '#').'#', $type); } /** * Get the data format expected in the response. * * @param string $default * @return string */ public function format($default = 'html') { foreach ($this->getAcceptableContentTypes() as $type) { if ($format = $this->getFormat($type)) { return $format; } } return $default; } } PK\'5::Concerns/InteractsWithInput.phpnu[retrieveItem('server', $key, $default); } /** * Determine if a header is set on the request. * * @param string $key * @return bool */ public function hasHeader($key) { return ! is_null($this->header($key)); } /** * Retrieve a header from the request. * * @param string|null $key * @param string|array|null $default * @return string|array|null */ public function header($key = null, $default = null) { return $this->retrieveItem('headers', $key, $default); } /** * Get the bearer token from the request headers. * * @return string|null */ public function bearerToken() { $header = $this->header('Authorization', ''); $position = strrpos($header, 'Bearer '); if ($position !== false) { $header = substr($header, $position + 7); return str_contains($header, ',') ? strstr($header, ',', true) : $header; } } /** * Determine if the request contains a given input item key. * * @param string|array $key * @return bool */ public function exists($key) { return $this->has($key); } /** * Determine if the request contains a given input item key. * * @param string|array $key * @return bool */ public function has($key) { $keys = is_array($key) ? $key : func_get_args(); $input = $this->all(); foreach ($keys as $value) { if (! Arr::has($input, $value)) { return false; } } return true; } /** * Determine if the request contains any of the given inputs. * * @param string|array $keys * @return bool */ public function hasAny($keys) { $keys = is_array($keys) ? $keys : func_get_args(); $input = $this->all(); return Arr::hasAny($input, $keys); } /** * Apply the callback if the request contains the given input item key. * * @param string $key * @param callable $callback * @param callable|null $default * @return $this|mixed */ public function whenHas($key, callable $callback, callable $default = null) { if ($this->has($key)) { return $callback(data_get($this->all(), $key)) ?: $this; } if ($default) { return $default(); } return $this; } /** * Determine if the request contains a non-empty value for an input item. * * @param string|array $key * @return bool */ public function filled($key) { $keys = is_array($key) ? $key : func_get_args(); foreach ($keys as $value) { if ($this->isEmptyString($value)) { return false; } } return true; } /** * Determine if the request contains an empty value for an input item. * * @param string|array $key * @return bool */ public function isNotFilled($key) { $keys = is_array($key) ? $key : func_get_args(); foreach ($keys as $value) { if (! $this->isEmptyString($value)) { return false; } } return true; } /** * Determine if the request contains a non-empty value for any of the given inputs. * * @param string|array $keys * @return bool */ public function anyFilled($keys) { $keys = is_array($keys) ? $keys : func_get_args(); foreach ($keys as $key) { if ($this->filled($key)) { return true; } } return false; } /** * Apply the callback if the request contains a non-empty value for the given input item key. * * @param string $key * @param callable $callback * @param callable|null $default * @return $this|mixed */ public function whenFilled($key, callable $callback, callable $default = null) { if ($this->filled($key)) { return $callback(data_get($this->all(), $key)) ?: $this; } if ($default) { return $default(); } return $this; } /** * Determine if the request is missing a given input item key. * * @param string|array $key * @return bool */ public function missing($key) { $keys = is_array($key) ? $key : func_get_args(); return ! $this->has($keys); } /** * Apply the callback if the request is missing the given input item key. * * @param string $key * @param callable $callback * @param callable|null $default * @return $this|mixed */ public function whenMissing($key, callable $callback, callable $default = null) { if ($this->missing($key)) { return $callback(data_get($this->all(), $key)) ?: $this; } if ($default) { return $default(); } return $this; } /** * Determine if the given input key is an empty string for "filled". * * @param string $key * @return bool */ protected function isEmptyString($key) { $value = $this->input($key); return ! is_bool($value) && ! is_array($value) && trim((string) $value) === ''; } /** * Get the keys for all of the input and files. * * @return array */ public function keys() { return array_merge(array_keys($this->input()), $this->files->keys()); } /** * Get all of the input and files for the request. * * @param array|mixed|null $keys * @return array */ public function all($keys = null) { $input = array_replace_recursive($this->input(), $this->allFiles()); if (! $keys) { return $input; } $results = []; foreach (is_array($keys) ? $keys : func_get_args() as $key) { Arr::set($results, $key, Arr::get($input, $key)); } return $results; } /** * Retrieve an input item from the request. * * @param string|null $key * @param mixed $default * @return mixed */ public function input($key = null, $default = null) { return data_get( $this->getInputSource()->all() + $this->query->all(), $key, $default ); } /** * Retrieve input from the request as a Stringable instance. * * @param string $key * @param mixed $default * @return \Illuminate\Support\Stringable */ public function str($key, $default = null) { return $this->string($key, $default); } /** * Retrieve input from the request as a Stringable instance. * * @param string $key * @param mixed $default * @return \Illuminate\Support\Stringable */ public function string($key, $default = null) { return str($this->input($key, $default)); } /** * Retrieve input as a boolean value. * * Returns true when value is "1", "true", "on", and "yes". Otherwise, returns false. * * @param string|null $key * @param bool $default * @return bool */ public function boolean($key = null, $default = false) { return filter_var($this->input($key, $default), FILTER_VALIDATE_BOOLEAN); } /** * Retrieve input as an integer value. * * @param string $key * @param int $default * @return int */ public function integer($key, $default = 0) { return intval($this->input($key, $default)); } /** * Retrieve input as a float value. * * @param string $key * @param float $default * @return float */ public function float($key, $default = 0.0) { return floatval($this->input($key, $default)); } /** * Retrieve input from the request as a Carbon instance. * * @param string $key * @param string|null $format * @param string|null $tz * @return \Illuminate\Support\Carbon|null * * @throws \Carbon\Exceptions\InvalidFormatException */ public function date($key, $format = null, $tz = null) { if ($this->isNotFilled($key)) { return null; } if (is_null($format)) { return Date::parse($this->input($key), $tz); } return Date::createFromFormat($format, $this->input($key), $tz); } /** * Retrieve input from the request as an enum. * * @template TEnum * * @param string $key * @param class-string $enumClass * @return TEnum|null */ public function enum($key, $enumClass) { if ($this->isNotFilled($key) || ! enum_exists($enumClass) || ! method_exists($enumClass, 'tryFrom')) { return null; } return $enumClass::tryFrom($this->input($key)); } /** * Retrieve input from the request as a collection. * * @param array|string|null $key * @return \Illuminate\Support\Collection */ public function collect($key = null) { return collect(is_array($key) ? $this->only($key) : $this->input($key)); } /** * Get a subset containing the provided keys with values from the input data. * * @param array|mixed $keys * @return array */ public function only($keys) { $results = []; $input = $this->all(); $placeholder = new stdClass; foreach (is_array($keys) ? $keys : func_get_args() as $key) { $value = data_get($input, $key, $placeholder); if ($value !== $placeholder) { Arr::set($results, $key, $value); } } return $results; } /** * Get all of the input except for a specified array of items. * * @param array|mixed $keys * @return array */ public function except($keys) { $keys = is_array($keys) ? $keys : func_get_args(); $results = $this->all(); Arr::forget($results, $keys); return $results; } /** * Retrieve a query string item from the request. * * @param string|null $key * @param string|array|null $default * @return string|array|null */ public function query($key = null, $default = null) { return $this->retrieveItem('query', $key, $default); } /** * Retrieve a request payload item from the request. * * @param string|null $key * @param string|array|null $default * @return string|array|null */ public function post($key = null, $default = null) { return $this->retrieveItem('request', $key, $default); } /** * Determine if a cookie is set on the request. * * @param string $key * @return bool */ public function hasCookie($key) { return ! is_null($this->cookie($key)); } /** * Retrieve a cookie from the request. * * @param string|null $key * @param string|array|null $default * @return string|array|null */ public function cookie($key = null, $default = null) { return $this->retrieveItem('cookies', $key, $default); } /** * Get an array of all of the files on the request. * * @return array */ public function allFiles() { $files = $this->files->all(); return $this->convertedFiles = $this->convertedFiles ?? $this->convertUploadedFiles($files); } /** * Convert the given array of Symfony UploadedFiles to custom Laravel UploadedFiles. * * @param array $files * @return array */ protected function convertUploadedFiles(array $files) { return array_map(function ($file) { if (is_null($file) || (is_array($file) && empty(array_filter($file)))) { return $file; } return is_array($file) ? $this->convertUploadedFiles($file) : UploadedFile::createFromBase($file); }, $files); } /** * Determine if the uploaded data contains a file. * * @param string $key * @return bool */ public function hasFile($key) { if (! is_array($files = $this->file($key))) { $files = [$files]; } foreach ($files as $file) { if ($this->isValidFile($file)) { return true; } } return false; } /** * Check that the given file is a valid file instance. * * @param mixed $file * @return bool */ protected function isValidFile($file) { return $file instanceof SplFileInfo && $file->getPath() !== ''; } /** * Retrieve a file from the request. * * @param string|null $key * @param mixed $default * @return \Illuminate\Http\UploadedFile|\Illuminate\Http\UploadedFile[]|array|null */ public function file($key = null, $default = null) { return data_get($this->allFiles(), $key, $default); } /** * Retrieve a parameter item from a given source. * * @param string $source * @param string|null $key * @param string|array|null $default * @return string|array|null */ protected function retrieveItem($source, $key, $default) { if (is_null($key)) { return $this->$source->all(); } if ($this->$source instanceof InputBag) { return $this->$source->all()[$key] ?? $default; } return $this->$source->get($key, $default); } /** * Dump the request items and end the script. * * @param mixed ...$keys * @return never */ public function dd(...$keys) { $this->dump(...$keys); exit(1); } /** * Dump the items. * * @param mixed $keys * @return $this */ public function dump($keys = []) { $keys = is_array($keys) ? $keys : func_get_args(); VarDumper::dump(count($keys) > 0 ? $this->only($keys) : $this->all()); return $this; } } PK\v_eBBRedirectResponse.phpnuȯ $value]; foreach ($key as $k => $v) { $this->session->flash($k, $v); } return $this; } /** * Add multiple cookies to the response. * * @param array $cookies * @return $this */ public function withCookies(array $cookies) { foreach ($cookies as $cookie) { $this->headers->setCookie($cookie); } return $this; } /** * Flash an array of input to the session. * * @param array|null $input * @return $this */ public function withInput(array $input = null) { $this->session->flashInput($this->removeFilesFromInput( ! is_null($input) ? $input : $this->request->input() )); return $this; } /** * Remove all uploaded files form the given input array. * * @param array $input * @return array */ protected function removeFilesFromInput(array $input) { foreach ($input as $key => $value) { if (is_array($value)) { $input[$key] = $this->removeFilesFromInput($value); } if ($value instanceof SymfonyUploadedFile) { unset($input[$key]); } } return $input; } /** * Flash an array of input to the session. * * @return $this */ public function onlyInput() { return $this->withInput($this->request->only(func_get_args())); } /** * Flash an array of input to the session. * * @return $this */ public function exceptInput() { return $this->withInput($this->request->except(func_get_args())); } /** * Flash a container of errors to the session. * * @param \Illuminate\Contracts\Support\MessageProvider|array|string $provider * @param string $key * @return $this */ public function withErrors($provider, $key = 'default') { $value = $this->parseErrors($provider); $errors = $this->session->get('errors', new ViewErrorBag); if (! $errors instanceof ViewErrorBag) { $errors = new ViewErrorBag; } $this->session->flash( 'errors', $errors->put($key, $value) ); return $this; } /** * Parse the given errors into an appropriate value. * * @param \Illuminate\Contracts\Support\MessageProvider|array|string $provider * @return \Illuminate\Support\MessageBag */ protected function parseErrors($provider) { if ($provider instanceof MessageProvider) { return $provider->getMessageBag(); } return new MessageBag((array) $provider); } /** * Add a fragment identifier to the URL. * * @param string $fragment * @return $this */ public function withFragment($fragment) { return $this->withoutFragment() ->setTargetUrl($this->getTargetUrl().'#'.Str::after($fragment, '#')); } /** * Remove any fragment identifier from the response URL. * * @return $this */ public function withoutFragment() { return $this->setTargetUrl(Str::before($this->getTargetUrl(), '#')); } /** * Get the original response content. * * @return null */ public function getOriginalContent() { // } /** * Get the request instance. * * @return \Illuminate\Http\Request|null */ public function getRequest() { return $this->request; } /** * Set the request instance. * * @param \Illuminate\Http\Request $request * @return void */ public function setRequest(Request $request) { $this->request = $request; } /** * Get the session store instance. * * @return \Illuminate\Session\Store|null */ public function getSession() { return $this->session; } /** * Set the session store instance. * * @param \Illuminate\Session\Store $session * @return void */ public function setSession(SessionStore $session) { $this->session = $session; } /** * Dynamically bind flash data in the session. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { if (static::hasMacro($method)) { return $this->macroCall($method, $parameters); } if (str_starts_with($method, 'with')) { return $this->with(Str::snake(substr($method, 4)), $parameters[0]); } static::throwBadMethodCallException($method); } } PK\0ۛFile.phpnu[map(fn ($value, $key) => is_int($key) ? $value : "{$key}={$value}") ->map(fn ($value) => Str::finish($value, ';')) ->pipe(fn ($options) => rtrim(static::class.':'.$options->implode(''), ';')); } /** * Add cache related HTTP headers. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string|array $options * @return \Symfony\Component\HttpFoundation\Response * * @throws \InvalidArgumentException */ public function handle($request, Closure $next, $options = []) { $response = $next($request); if (! $request->isMethodCacheable() || (! $response->getContent() && ! $response instanceof BinaryFileResponse)) { return $response; } if (is_string($options)) { $options = $this->parseOptions($options); } if (isset($options['etag']) && $options['etag'] === true) { $options['etag'] = $response->getEtag() ?? md5($response->getContent()); } if (isset($options['last_modified'])) { if (is_numeric($options['last_modified'])) { $options['last_modified'] = Carbon::createFromTimestamp($options['last_modified']); } else { $options['last_modified'] = Carbon::parse($options['last_modified']); } } $response->setCache($options); $response->isNotModified($request); return $response; } /** * Parse the given header options. * * @param string $options * @return array */ protected function parseOptions($options) { return collect(explode(';', rtrim($options, ';')))->mapWithKeys(function ($option) { $data = explode('=', $option, 2); return [$data[0] => $data[1] ?? true]; })->all(); } } PK\0L,Middleware/CheckResponseForModifications.phpnu[isNotModified($request); } return $response; } } PK\ Middleware/FrameGuard.phpnu[headers->set('X-Frame-Options', 'SAMEORIGIN', false); return $response; } } PK\/Middleware/AddLinkHeadersForPreloadedAssets.phpnu[header('Link', Collection::make(Vite::preloadedAssets()) ->map(fn ($attributes, $url) => "<{$url}>; ".implode('; ', $attributes)) ->join(', ')); } }); } } PK\G Middleware/HandleCors.phpnu[container = $container; $this->cors = $cors; } /** * Handle the incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return \Illuminate\Http\Response */ public function handle($request, Closure $next) { if (! $this->hasMatchingPath($request)) { return $next($request); } $this->cors->setOptions($this->container['config']->get('cors', [])); if ($this->cors->isPreflightRequest($request)) { $response = $this->cors->handlePreflightRequest($request); $this->cors->varyHeader($response, 'Access-Control-Request-Method'); return $response; } $response = $next($request); if ($request->getMethod() === 'OPTIONS') { $this->cors->varyHeader($response, 'Access-Control-Request-Method'); } return $this->cors->addActualRequestHeaders($response, $request); } /** * Get the path from the configuration to determine if the CORS service should run. * * @param \Illuminate\Http\Request $request * @return bool */ protected function hasMatchingPath(Request $request): bool { $paths = $this->getPathsByHost($request->getHost()); foreach ($paths as $path) { if ($path !== '/') { $path = trim($path, '/'); } if ($request->fullUrlIs($path) || $request->is($path)) { return true; } } return false; } /** * Get the CORS paths for the given host. * * @param string $host * @return array */ protected function getPathsByHost(string $host) { $paths = $this->container['config']->get('cors.paths', []); if (isset($paths[$host])) { return $paths[$host]; } return array_filter($paths, function ($path) { return is_string($path); }); } } PK\?fFileHelpers.phpnu[getRealPath(); } /** * Get the file's extension. * * @return string */ public function extension() { return $this->guessExtension(); } /** * Get a filename for the file. * * @param string|null $path * @return string */ public function hashName($path = null) { if ($path) { $path = rtrim($path, '/').'/'; } $hash = $this->hashName ?: $this->hashName = Str::random(40); if ($extension = $this->guessExtension()) { $extension = '.'.$extension; } return $path.$hash.$extension; } /** * Get the dimensions of the image (if applicable). * * @return array|null */ public function dimensions() { return @getimagesize($this->getRealPath()); } } PK\)#ResponseTrait.phpnu[getStatusCode(); } /** * Get the status text for the response. * * @return string */ public function statusText() { return $this->statusText; } /** * Get the content of the response. * * @return string */ public function content() { return $this->getContent(); } /** * Get the original response content. * * @return mixed */ public function getOriginalContent() { $original = $this->original; return $original instanceof self ? $original->{__FUNCTION__}() : $original; } /** * Set a header on the Response. * * @param string $key * @param array|string $values * @param bool $replace * @return $this */ public function header($key, $values, $replace = true) { $this->headers->set($key, $values, $replace); return $this; } /** * Add an array of headers to the response. * * @param \Symfony\Component\HttpFoundation\HeaderBag|array $headers * @return $this */ public function withHeaders($headers) { if ($headers instanceof HeaderBag) { $headers = $headers->all(); } foreach ($headers as $key => $value) { $this->headers->set($key, $value); } return $this; } /** * Add a cookie to the response. * * @param \Symfony\Component\HttpFoundation\Cookie|mixed $cookie * @return $this */ public function cookie($cookie) { return $this->withCookie(...func_get_args()); } /** * Add a cookie to the response. * * @param \Symfony\Component\HttpFoundation\Cookie|mixed $cookie * @return $this */ public function withCookie($cookie) { if (is_string($cookie) && function_exists('cookie')) { $cookie = cookie(...func_get_args()); } $this->headers->setCookie($cookie); return $this; } /** * Expire a cookie when sending the response. * * @param \Symfony\Component\HttpFoundation\Cookie|mixed $cookie * @param string|null $path * @param string|null $domain * @return $this */ public function withoutCookie($cookie, $path = null, $domain = null) { if (is_string($cookie) && function_exists('cookie')) { $cookie = cookie($cookie, null, -2628000, $path, $domain); } $this->headers->setCookie($cookie); return $this; } /** * Get the callback of the response. * * @return string|null */ public function getCallback() { return $this->callback ?? null; } /** * Set the exception to attach to the response. * * @param \Throwable $e * @return $this */ public function withException(Throwable $e) { $this->exception = $e; return $this; } /** * Throws the response in a HttpResponseException instance. * * @return void * * @throws \Illuminate\Http\Exceptions\HttpResponseException */ public function throwResponse() { throw new HttpResponseException($this); } } PK\/[ JsonResponse.phpnuȯencodingOptions = $options; parent::__construct($data, $status, $headers, $json); } /** * {@inheritdoc} * * @return static */ public static function fromJsonString(?string $data = null, int $status = 200, array $headers = []): static { return new static($data, $status, $headers, 0, true); } /** * Sets the JSONP callback. * * @param string|null $callback * @return $this */ public function withCallback($callback = null) { return $this->setCallback($callback); } /** * Get the json_decoded data from the response. * * @param bool $assoc * @param int $depth * @return mixed */ public function getData($assoc = false, $depth = 512) { return json_decode($this->data, $assoc, $depth); } /** * {@inheritdoc} * * @return static */ public function setData($data = []): static { $this->original = $data; // Ensure json_last_error() is cleared... json_decode('[]'); $this->data = match (true) { $data instanceof Jsonable => $data->toJson($this->encodingOptions), $data instanceof JsonSerializable => json_encode($data->jsonSerialize(), $this->encodingOptions), $data instanceof Arrayable => json_encode($data->toArray(), $this->encodingOptions), default => json_encode($data, $this->encodingOptions), }; if (! $this->hasValidJson(json_last_error())) { throw new InvalidArgumentException(json_last_error_msg()); } return $this->update(); } /** * Determine if an error occurred during JSON encoding. * * @param int $jsonError * @return bool */ protected function hasValidJson($jsonError) { if ($jsonError === JSON_ERROR_NONE) { return true; } return $this->hasEncodingOption(JSON_PARTIAL_OUTPUT_ON_ERROR) && in_array($jsonError, [ JSON_ERROR_RECURSION, JSON_ERROR_INF_OR_NAN, JSON_ERROR_UNSUPPORTED_TYPE, ]); } /** * {@inheritdoc} * * @return static */ public function setEncodingOptions($options): static { $this->encodingOptions = (int) $options; return $this->setData($this->getData()); } /** * Determine if a JSON encoding option is set. * * @param int $option * @return bool */ public function hasEncodingOption($option) { return (bool) ($this->encodingOptions & $option); } } PK\-J$Exceptions/HttpResponseException.phpnu[response = $response; } /** * Get the underlying response instance. * * @return \Symfony\Component\HttpFoundation\Response */ public function getResponse() { return $this->response; } } PK\ZTT$Exceptions/PostTooLargeException.phpnu[storeAs($path, $this->hashName(), $this->parseOptions($options)); } /** * Store the uploaded file on a filesystem disk with public visibility. * * @param string $path * @param array|string $options * @return string|false */ public function storePublicly($path = '', $options = []) { $options = $this->parseOptions($options); $options['visibility'] = 'public'; return $this->storeAs($path, $this->hashName(), $options); } /** * Store the uploaded file on a filesystem disk with public visibility. * * @param string $path * @param string $name * @param array|string $options * @return string|false */ public function storePubliclyAs($path, $name = null, $options = []) { if (is_null($name) || is_array($name)) { [$path, $name, $options] = ['', $path, $name ?? []]; } $options = $this->parseOptions($options); $options['visibility'] = 'public'; return $this->storeAs($path, $name, $options); } /** * Store the uploaded file on a filesystem disk. * * @param string $path * @param string|array $name * @param array|string $options * @return string|false */ public function storeAs($path, $name = null, $options = []) { if (is_null($name) || is_array($name)) { [$path, $name, $options] = ['', $path, $name ?? []]; } $options = $this->parseOptions($options); $disk = Arr::pull($options, 'disk'); return Container::getInstance()->make(FilesystemFactory::class)->disk($disk)->putFileAs( $path, $this, $name, $options ); } /** * Get the contents of the uploaded file. * * @return false|string * * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException */ public function get() { if (! $this->isValid()) { throw new FileNotFoundException("File does not exist at path {$this->getPathname()}."); } return file_get_contents($this->getPathname()); } /** * Get the file's extension supplied by the client. * * @return string */ public function clientExtension() { return $this->guessClientExtension(); } /** * Create a new file instance from a base instance. * * @param \Symfony\Component\HttpFoundation\File\UploadedFile $file * @param bool $test * @return static */ public static function createFromBase(SymfonyUploadedFile $file, $test = false) { return $file instanceof static ? $file : new static( $file->getPathname(), $file->getClientOriginalName(), $file->getClientMimeType(), $file->getError(), $test ); } /** * Parse and format the given options. * * @param array|string $options * @return array */ protected function parseOptions($options) { if (is_string($options)) { $options = ['disk' => $options]; } return $options; } } PK8\?̑ Kernel.phpnu[PK8\>"B-Requests/UpdateFrontCmsRequest.phpnu[PK8\Cdtt1Requests/UpdateBlogRequest.phpnu[PK8\C*4Requests/UpdateFrontTestimonialRequest.phpnu[PK8\[8Requests/UpdatePlanRequest.phpnu[PK8\ .BB$g<Requests/UpdateCustomLinkRequest.phpnu[PK8\z >Requests/CreateVcardRequest.phpnu[PK8\N)+DRequests/CreateEmailSubscriptionRequest.phpnu[PK8\+#FRequests/CreateVcardBlogRequest.phpnu[PK8\/hۢIRequests/CreatePlanRequest.phpnu[PK8\!NRequests/UpdateProductRequest.phpnu[PK8\XZYY(KRRequests/createWithdrawAmountRequest.phpnu[PK8\)!TRequests/AddCouponCodeRequest.phpnu[PK8\0!XRequests/UpdatePaymentRequest.phpnu[PK8\$~amm"`Requests/CreateLanguageRequest.phpnu[PK8\y4bRequests/CreateCityRequest.phpnu[PK8\SS!dRequests/CreateAboutUsRequest.phpnu[PK8\!hRequests/UpdateNfcCardRequest.phpnu[PK8\Ҧ9$kRequests/HomePageSettingRrequest.phpnu[PK8\yd%oRequests/UpdateUserProfileRequest.phpnu[PK8\HEE%rRequests/UpdateMailSettingRequest.phpnu[PK8\)ZlleuRequests/CreateUserRequest.phpnu[PK8\^?GBB(xRequests/CreateContactEnquiryRequest.phpnu[PK8\݊({Requests/UpdateInstagramEmbedRequest.phpnu[PK8\C"~Requests/UpdateLanguageRequest.phpnu[PK8\VH1$eRequests/UpdateCouponCodeRequest.phpnu[PK8\_9%Requests/UpdateTestimonialRequest.phpnu[PK8\SdRequests/UpdateUserRequest.phpnu[PK8\< $Requests/CreateiframeRequest.phpnu[PK8\xO%yRequests/CreateTestimonialRequest.phpnu[PK8\^=Requests/NfcOrderRequest.phpnu[PK8\>ղn*Requests/CreateEmailSubscribersRequest.phpnu[PK8\-*Requests/CreateFrontTestimonialRequest.phpnu[PK8\::! Requests/CreateGalleryRequest.phpnu[PK8\/-Requests/CreateScheduleAppointmentRequest.phpnu[PK8\VRequests/CreateNfcRequest.phpnu[PK8\E Requests/UpdateRoleRequest.phpnu[PK8\Š0cc(Requests/UpdateChangePasswordRequest.phpnu[PK8\9!֭Requests/CreateProductRequest.phpnu[PK8\e##Requests/UpdateCityRequest.phpnu[PK8\EPiZRequests/CreateStateRequest.phpnu[PK8\3ۛsRequests/Auth/LoginRequest.phpnu[PK8\QphRequests/Auth/error_lognu[PK8\w|99%oRequests/UpdateUserSettingRequest.phpnu[PK8\6VV&Requests/CreateVcardServiceRequest.phpnu[PK8\P:BB$Requests/CreateCustomLinkRequest.phpnu[PK8\000"?Requests/CreateRegisterRequest.phpnu[PK8\tt!Requests/UpdateCountryRequest.phpnu[PK8\3 Q Requests/CreateBannerRequest.phpnu[PK8\wdRequests/MobileRequest.phpnu[PK8\ss!Requests/CreateCountryRequest.phpnu[PK8\Q;[I!iRequests/CreateContactRequest.phpnu[PK8\n''Requests/UpdateStateRequest.phpnu[PK8\m6=!!!Requests/UpdateFeatureRequest.phpnu[PK8\ad  !vRequests/CreateEnquiryRequest.phpnu[PK8\lgg!Requests/UpdateGalleryRequest.phpnu[PK8\mGo(Requests/CreateInstagramEmbedRequest.phpnu[PK8\k#Requests/UpdateVcardBlogRequest.phpnu[PK8\Gv33&7Requests/UpdateUserPasswordRequest.phpnu[PK8\ IIRequests/SendMailRequest.phpnu[PK8\>URequests/CreateRoleRequest.phpnu[PK8\DnRequests/UpdateVcardRequest.phpnu[PK8\s^^ FControllers/PaypalController.phpnu[PK8\J(n(nfControllers/VcardController.phpnu[PK8\3++ Controllers/Controller.phpnu[PK8\fR''%Controllers/FlutterwaveController.phpnu[PK8\aVAA$Controllers/CouponCodeController.phpnu[PK8\w,4Controllers/ProductTransactionController.phpnu[PK8\fFҤ yControllers/RoleController.phpnu[PK8\K   -*Controllers/API/RegistrationAPIController.phpnu[PK8\538Controllers/API/BusinessCards/GroupsAPIController.phpnu[PK8\y@@'=Controllers/API/BusinessCards/error_lognu[PK8\; ; 7!FControllers/API/BusinessCards/BusinessAPIController.phpnu[PK8\^.QControllers/API/Admin/EnquiryAPIController.phpnu[PK8\.R A A 2:YControllers/API/Admin/AppointmentAPIController.phpnu[PK8\OJ ,dControllers/API/Admin/GroupAPIController.phpnu[PK8\,kControllers/API/Admin/VcardAPIController.phpnu[PK8\gk 0}Controllers/API/Admin/DashboardAPIController.phpnu[PK8\zG/ 7Controllers/API/Admin/SubscriptionPlanAPIController.phpnu[PK8\#DD.Controllers/API/Admin/SettingAPIController.phpnu[PK8\5bControllers/API/Admin/error_lognu[PK8\#Yr /Controllers/API/Admin/BusinessAPIController.phpnu[PK8\ `2r%Controllers/API/AuthAPIController.phpnu[PK8\Controllers/API/error_lognu[PK8\6c֎2Controllers/API/SuperAdmin/GroupsAPIController.phpnu[PK8\:92Controllers/API/SuperAdmin/VcardsAPIController.phpnu[PK8\5j 3Controllers/API/SuperAdmin/ProfileAPIController.phpnu[PK8\BaGG5Controllers/API/SuperAdmin/DashboardAPIController.phpnu[PK8\LL$Controllers/API/SuperAdmin/error_lognu[PK8\*%b b 4QControllers/API/SuperAdmin/BusinessAPIController.phpnu[PK8\Fb ""Controllers/LanguageController.phpnu[PK8\'E|!=Controllers/AboutUsController.phpnu[PK8\lIz.h h 0]DControllers/Webhooks/BrasilWebhookController.phpnuIwPK8\u6%RControllers/Webhooks/MultibancoPagamentoController.phpnuIwPK8\bLL1jControllers/Webhooks/error_lognu[PK8\9_ _ oControllers/AsaasController.phpnuIwPK8\t" " !y|Controllers/EnquiryController.phpnu[PK8\&|!"&Controllers/PaypalPayoutController.phpnu[PK8\D@ Controllers/BannerController.phpnu[PK8\'%L&&#|Controllers/NfcOrdersController.phpnu[PK8\jr-- Controllers/StripeController.phpnu[PK8\7f f #^Controllers/DashboardController.phpnu[PK8\LELL%Controllers/TestimonialController.phpnu[PK8\C&&)Controllers/UserFlutterwaveController.phpnu[PK8\[55*!$Controllers/VcardSubscribersController.phpnu[PK8\>Ł##"(Controllers/PaystackController.phpnu[PK8\V3LControllers/HomeController.phpnu[PK8\:ʨ0!kControllers/GalleryController.phpnu[PK8\C  -LsControllers/AffiliationWithdrawController.phpnu[PK8\ZG::!Controllers/PhonepeController.phpnu[PK8\@ Controllers/ECardsController.phpnu[PK8\Ǻ'AControllers/AffiliateUserController.phpnu[PK8\nm55"rControllers/RazorpayController.phpnu[PK8\b5::% Controllers/UserPhonepeController.phpnu[PK8\3II$lFControllers/SocialAuthController.phpnu[PK8\DD VControllers/StateController.phpnu[PK8\G"\Controllers/SendMailController.phpnu[PK8\0#0#ybControllers/UserController.phpnu[PK8\A"Controllers/CurrencyController.phpnu[PK8\p 9 9 ̇Controllers/AddOnController.phpnu[PK8\ċ,,%TControllers/MailSettingController.phpnu[PK8\yN=N=&՚Controllers/SubscriptionController.phpnu[PK8\L"yControllers/HomeController.php.baknu[PK8\JControllers/CityController.phpnu[PK8\ %Controllers/UserSettingController.phpnu[PK8\NA  $Controllers/CustomLinkController.phpnu[PK8\6!Controllers/CountryController.phpnu[PK8\뤶$#Controllers/OnboardingController.phpnuIwPK8\(3:&V&Controllers/NfcCardOrderController.phpnu[PK8\&--3V,Controllers/Auth/AuthenticatedSessionController.phpnu[PK8\Eߴ<0Controllers/Auth/EmailVerificationNotificationController.phpnu[PK8\1 SS63Controllers/Auth/EmailVerificationPromptController.phpnu[PK8\!66*6Controllers/Auth/VerifyEmailController.phpnu[PK8\δRGG-0:Controllers/Auth/RegisteredUserController.phpnu[PK8\9##0?Controllers/Auth/PasswordResetLinkController.phpnu[PK8\vt**WEControllers/Auth/error_lognu[PK8\q K*cControllers/Auth/NewPasswordController.phpnu[PK8\Ji2lControllers/Auth/ConfirmablePasswordController.phpnu[PK8\UЪ??#2qControllers/FrontFAQsController.phpnu[PK8\7_0'xControllers/UserDashboardController.phpnu[PK8\(%==-zControllers/ScheduleAppointmentController.phpnu[PK8\5:P( ( !jControllers/FeatureController.phpnu[PK8\}ɧ(Controllers/ContactRequestController.phpnu[PK8\ O Controllers/BlogController.phpnu[PK8\vI!+Controllers/AppBaseController.phpnu[PK8\iЄ66#,Controllers/VcardBlogController.phpnu[PK8\j-CCControllers/PlanController.phpnu[PK8\$VN|$$!FControllers/ProductController.phpnu[PK8\g=j??*Controllers/FrontTestimonialController.phpnu[PK8\KXX(Controllers/InstagramEmbedController.phpnu[PK8\i&%Controllers/VcardServiceController.phpnu[PK8\إA$A$!,Controllers/SettingController.phpnu[PK8\oii?QControllers/NfcController.phpnu[PK8\!2 2 &WControllers/StorageLimitController.phpnu[PK8\A//+}aControllers/EmailSubscriptionController.phpnu[PK8\&fControllers/UserPaystackController.phpnu[PK8\=|y<y<*QControllers/SubscriptionController.php.baknu[PK8\]s $Controllers/iframeController.phpnu[PK8\)h h #Controllers/AdminUserController.phpnu[PK8\xooVVCMiddleware/FreshInstall.phpnu[PK8\Gf Middleware/ValidateSignature.phpnu[PK8\40dMiddleware/TrustProxies.phpnu[PK8\UI<Middleware/VerifyCsrfToken.phpnu[PK8\~Middleware/TrustHosts.phpnu[PK8\ckk&Middleware/RedirectIfAuthenticated.phpnu[PK8\qyMiddleware/Authenticate.phpnu[PK8\z*"Middleware/CheckVcardAnalytics.phpnu[PK8\m8+ Middleware/SetLanguage.phpnu[PK8\`f f iMiddleware/DetectRegion.phpnuIwPK8\YzVZZ Middleware/checkVcardEdit.phpnu[PK8\*!&&Middleware/EncryptCookies.phpnu[PK8\B;04Middleware/CheckUserIsValid.phpnu[PK8\%nii Middleware/CheckVcardEnquiry.phpnu[PK8\Lv??LMiddleware/XSS.phpnu[PK8\ Middleware/Analytics.phpnu[PK8\P*rr''Middleware/languageChangeMiddleware.phpnu[PK8\S迯22%)Middleware/CheckVcardSubscription.phpnu[PK8\glaa/`-Middleware/PreventRequestsDuringMaintenance.phpnu[PK8\ۘ K  /Middleware/CheckSubscription.phpnu[PK8\7$3Middleware/MultiTenantMiddleware.phpnu[PK8\~}}8Middleware/TrimStrings.phpnu[PK\9Controllers/.gitkeepnu[PK\[6:Controllers/TestController.phpnu[PK\LyxCC'?Controllers/error_lognu[PK]\0gg$@Controllers/CsrfCookieController.phpnu[PK]\0֬!jCMiddleware/CheckForAnyAbility.phpnu[PK]\a; 0gGMiddleware/EnsureFrontendRequestsAreStateful.phpnu[PK]\KK}RMiddleware/CheckScopes.phpnu[PK]\HFVMiddleware/CheckAbilities.phpnu[PK]\8i i "ZMiddleware/AuthenticateSession.phpnu[PK]\EoQPXXdMiddleware/CheckForAnyScope.phpnu[PK-\C!!ihRequests/error_lognu[PK-\z9 Middleware/error_lognu[PK-\A44  error_lognu[PKs\~88! Requests/ProfileUpdateRequest.phpnu[PKs\Y! Controllers/ProfileController.phpnu[PKs\VN'a Controllers/Auth/PasswordController.phpnu[PK!\$ Middleware/EnsureEmailIsVerified.phpnu[PK\   Response.phpnuȯPK\a Exceptions/MissingParameter.phpnu[PK\_L Exceptions/BadResponse.phpnu[PK\$ͬ Exceptions/NotFound.phpnu[PK\8r   Exceptions/InvalidData.phpnu[PK\G'? Exceptions/error_lognu[PK\H Exceptions/BadResponseCode.phpnu[PK\H˵  Client.phpnu[PK;4\2Ĭ  Requests/UpdateConfigRequest.phpnu[PK;4\^# Requests/ExecuteSolutionRequest.phpnu[PK;4\2& Controllers/UpdateConfigController.phpnu[PK;4\w% Controllers/HealthCheckController.phpnu[PK;4\@ )9 Controllers/ExecuteSolutionController.phpnu[PK;4\Cc ZZ'7 Middleware/RunnableSolutionsEnabled.phpnu[PK\α33  LICENSE.mdnu[PK\, U composer.jsonnuȯPK\OeH  ! Resources/MissingValue.phpnu[PK\``" Resources/Json/JsonResource.phpnu[PK\uze.; Resources/Json/AnonymousResourceCollection.phpnu[PK\ˆ #> Resources/Json/ResourceResponse.phpnu[PK\SG G ,K Resources/Json/PaginatedResourceResponse.phpnu[PK\ ?z  %2V Resources/Json/ResourceCollection.phpnu[PK\ nj` ` c Resources/Json/error_lognu[PK\!AFn Resources/MergeValue.phpnu[PK\RAmČ,,*1q Resources/ConditionallyLoadsAttributes.phpnu[PK\ۃ2o  Resources/CollectsResources.phpnu[PK\/' ' !f Resources/DelegatesToResource.phpnu[PK\0;޵ Resources/error_lognu[PK\B ͺ Resources/PotentiallyMissing.phpnu[PK\@2To o  Testing/File.phpnu[PK\M~XO  Testing/FileFactory.phpnu[PK\ו| Testing/MimeType.phpnu[PK\DPPU Testing/error_lognu[PK\v,qq Client/HttpClientException.phpnu[PK\L Client/RequestException.phpnu[PK\z" Client/Events/ConnectionFailed.phpnu[PK\\" Client/Events/ResponseReceived.phpnu[PK\o = Client/Events/RequestSending.phpnu[PK\Myπ&&[ Client/Response.phpnu[PK\/y:[   Client/Pool.phpnu[PK\5}wh Client/Request.phpnu[PK\H&? ? (- Client/Concerns/DeterminesStatusCode.phpnu[PK\A" : Client/PendingRequest.phpnu[PK\\b p Client/ResponseSequence.phpnu[PK\ Ykk Client/ConnectionException.phpnu[PK\"**Q Client/Factory.phpnu[PK\Pg* Client/error_lognu[PK\g?BFF P Request.phpnu[PK\lb^ Concerns/CanBePrecognitive.phpnu[PK\f#b Concerns/InteractsWithFlashData.phpnu[PK\, & i Concerns/InteractsWithContentTypes.phpnu[PK\'5::dz Concerns/InteractsWithInput.phpnu[PK\v_eBB RedirectResponse.phpnuȯPK\0ۛ' File.phpnu[PK\CRh h  Middleware/SetCacheHeaders.phpnu[PK\0L, Middleware/CheckResponseForModifications.phpnu[PK\ ' Middleware/FrameGuard.phpnu[PK\/c Middleware/AddLinkHeadersForPreloadedAssets.phpnu[PK\G  Middleware/HandleCors.phpnu[PK\?f FileHelpers.phpnu[PK\)# ResponseTrait.phpnu[PK\/[  JsonResponse.phpnuȯPK\-J$ Exceptions/HttpResponseException.phpnu[PK\ZTT$/ Exceptions/PostTooLargeException.phpnu[PK\|kxx( Exceptions/ThrottleRequestsException.phpnu[PK\h)   UploadedFile.phpnu[PKzg%