消える飛行機雲 僕たちは見送った 眩しくて逃げた いつだって弱くて あの日から変わらず いつまでも変わらずに いられなかったこと 悔しくて指を離す あの鳥は まだ うまく飛べないけど いつかは 風を切って知る 届かない場所が まだ遠くにある 願いだけ秘めて 見つめてる 子供たちは 夏の線路 歩く 吹く風に素足をさらして 遠くには幼かった日びを 両手には 飛び立つ希望を 消える飛行機雲 追いかけて 追いかけて この丘を越えた あの日から変わらず いつまでも 真っ直ぐに 僕たちはあるように わたつみのような 強さを守れるよ きっと ���� 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*!fieldSearchable; } /** * {@inheritDoc} */ public function model() { return User::class; } /** * @return mixed */ public function store($input) { try { DB::beginTransaction(); $tenant = MultiTenant::create(['tenant_username' => $input['first_name']]); $userDefaultLanguage = Setting::where('key', 'user_default_language')->first()->value ?? 'en'; $input['tenant_id'] = $tenant->id; $input['language'] = $userDefaultLanguage; $input['password'] = Hash::make($input['password']); if (isset($input['role'])) { $user = User::create($input)->assignRole(Role::ROLE_SUPER_ADMIN); $user->email_verified_at = Carbon::now(); $user->is_active = true; $user->save(); } else { $input['affiliate_code'] = generateUniqueAffiliateCode(); $user = User::create($input)->assignRole(Role::ROLE_ADMIN); $user->email_verified_at = Carbon::now(); $user->steps = 0; $user->save(); } if (isset($input['profile']) && !empty($input['profile'])) { $user->addMedia($input['profile'])->toMediaCollection(User::PROFILE, config('app.media_disc')); } if (!isset($input['is_admin'])) { $user->sendEmailVerificationNotification(); } if (isset($input['plan_id'])) { $plan = Plan::whereId($input['plan_id'])->first(); } else { $plan = Plan::whereIsDefault(true)->first(); } if (!isset($input['role'])) { $vcardOfNo = $plan->no_of_vcards; $planPrice = $plan->price; if ($plan->custom_select == 1) { $customFields = $plan->planCustomFields; if ($customFields->isNotEmpty()) { $vcardOfNo = $customFields->first()->custom_vcard_number; $planPrice = $customFields->first()->custom_vcard_price; } } } if (!isset($input['role'])) { $subscription = new Subscription(); $subscription->plan_id = $plan->id; $subscription->starts_at = Carbon::now(); $subscription->ends_at = $plan->frequency == Plan::UNLIMITED ? Carbon::now()->addYears(100) : Carbon::now()->addDays($plan->trial_days); $subscription->plan_amount = $planPrice; $subscription->plan_frequency = $plan->frequency; $subscription->trial_ends_at = $plan->frequency == Plan::UNLIMITED ? Carbon::now()->addYears(100) : Carbon::now()->addDays($plan->trial_days); $subscription->no_of_vcards = $vcardOfNo; $subscription->tenant_id = $input['tenant_id']; $subscription->status = Subscription::ACTIVE; $subscription->saveQuietly(); } DB::commit(); return $user; } catch (Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } /** * @return Builder|Builder[]|Collection|Model|int */ public function update($input, $user) { if (isset($input['contact'])) { $input['contact'] = str_replace(' ', '', $input['contact']); } $currentPlan = Subscription::with(['plan']) ->whereTenantId($user->tenant_id) ->where('status', Subscription::ACTIVE)->latest()->first(); if($currentPlan){ $oldPlanLimit = $currentPlan->plan->no_of_vcards; if ($currentPlan->plan->custom_select == 1) { $customFields = $currentPlan->plan->planCustomFields; if ($customFields->isNotEmpty()) { $oldPlanLimit = $customFields->first()->custom_vcard_number; } } } if (isset($input['plan_id']) && $input['plan_id'] != $currentPlan->plan_id) { $subscription = Subscription::whereTenantId($user->tenant_id)->where('status', Subscription::ACTIVE)->latest()->first(); $plan = Plan::whereId($input['plan_id'])->first(); $vcardOfNo = $plan->no_of_vcards; $planPrice = $plan->price; if ($plan->custom_select == 1) { $customFields = $plan->planCustomFields; if ($customFields->isNotEmpty()) { $vcardOfNo = $customFields->first()->custom_vcard_number; $planPrice = $customFields->first()->custom_vcard_price; } } $subscription->update([ 'plan_id' => $plan->id, 'starts_at' => Carbon::now(), 'ends_at' => $plan->frequency == Plan::UNLIMITED ? Carbon::now()->addYears(100) : Carbon::now()->addDays($plan->trial_days), 'plan_amount' => $planPrice, 'plan_frequency' => $plan->frequency, 'trial_ends_at' => $plan->frequency == Plan::UNLIMITED ? Carbon::now()->addYears(100) : Carbon::now()->addDays($plan->trial_days), 'no_of_vcards' => $vcardOfNo, 'status' => Subscription::ACTIVE, ]); $newPlanLimit = $vcardOfNo; $this->manageVcards($user, $oldPlanLimit, $newPlanLimit); } $user->update($input); if (isset($input['profile']) && !empty($input['profile'])) { $user->clearMediaCollection(User::PROFILE); $user->addMedia($input['profile'])->toMediaCollection(User::PROFILE, config('app.media_disc')); } return $user; } public function manageVcards($user, $oldPlanLimit, $newPlanLimit) { $vCards = Vcard::where('tenant_id', $user->tenant_id)->get(); if ($vCards->count() > $newPlanLimit) { $excessVcards = $vCards->sortByDesc('created_at')->skip($newPlanLimit); foreach ($excessVcards as $vCard) { $vCard->update(['status' => '0']); } } } public function updateProfile($userInput): bool { try { DB::beginTransaction(); $user = Auth::user(); $userInput['contact'] = str_replace(' ', '', $userInput['contact']); if ($userInput['email'] != $user->email) { $token = Str::random(60); EmailVerification::create([ 'user_id' => $user->id, 'email' => $userInput['email'], 'token' => $token, ]); $url = url(config('app_domain') . '/change-email-verification/' . $user->id . '/' . $token); $data = [ 'user' => $user, 'url' => $url, ]; Mail::to($userInput['email']) ->send(new VerifyMail($data)); } $userInput['email'] = $user->email; $user->update($userInput); if (isset($userInput['profile']) && !empty($userInput['profile'])) { if ($user->hasRole('admin')) { $user->newClearMediaCollection($userInput['profile'],User::PROFILE); $user->newAddMedia($userInput['profile'])->toMediaCollection(User::PROFILE, config('app.media_disc')); }else{ $user->clearMediaCollection(User::PROFILE); $user->addMedia($userInput['profile'])->toMediaCollection(User::PROFILE, config('app.media_disc')); } } DB::commit(); return true; } catch (\Exception $e) { DB::rollBack(); throw $e; } } public function updateProfileAPI($userInput) { try { DB::beginTransaction(); $user = Auth::user(); // Check if 'contact' key exists before attempting to access it if (isset($userInput['contact'])) { $userInput['contact'] = str_replace(' ', '', $userInput['contact']); } if (isset($userInput['email']) && $userInput['email'] != $user->email) { $token = Str::random(60); EmailVerification::create([ 'user_id' => $user->id, 'email' => $userInput['email'], 'token' => $token, ]); $url = url(config('app_domain') . '/change-email-verification/' . $user->id . '/' . $token); $data = [ 'user' => $user, 'url' => $url, ]; Mail::to($userInput['email']) ->send(new VerifyMail($data)); } // Update user data excluding 'email' and 'profile' $user->update($userInput, ['email', 'profile']); if (isset($userInput['profile']) && !empty($userInput['profile'])) { $user->clearMediaCollection(User::PROFILE); $user->addMedia($userInput['profile'])->toMediaCollection(User::PROFILE, config('app.media_disc')); } DB::commit(); return true; } catch (\Exception $e) { DB::rollBack(); throw new UnprocessableEntityHttpException($e->getMessage()); } } public function userDataDelete(User $user) { try { if ($user->getRoleNames()[0] == 'admin') { $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(); } $affiliateUsers = AffiliateUser::whereUserId($user->id)->orWhere('affiliated_by', $user->id)->get(); foreach ($affiliateUsers as $affiliateUser) { $affiliateUser->delete(); } NfcOrderTransaction::where('user_id', $user->id)->delete(); $user = User::find($user->id); //product delete $products = Product::whereHas('vcard', function ($query) use ($user) { $query->where('tenant_id', $user->tenant_id); })->get(); foreach ($products as $product) { $mediaFiles = $product->getMedia('image'); foreach ($mediaFiles as $mediaFile) { $mediaFile->delete(); } $product->delete(); } //testimonial delete $user = User::find($user->id); $testimonials = Testimonial::whereHas('vcard', function ($query) use ($user) { $query->where('tenant_id', $user->tenant_id); })->get(); foreach ($testimonials as $testimonial) { $mediaFiles = $testimonial->getMedia('image'); foreach ($mediaFiles as $mediaFile) { $mediaFile->delete(); } $testimonial->delete(); } // blog delete $user = User::find($user->id); $blogs = VcardBlog::whereHas('vcard', function ($query) use ($user) { $query->where('tenant_id', $user->tenant_id); })->get(); foreach ($blogs as $blog) { $mediaFiles = $blog->getMedia('image'); foreach ($mediaFiles as $mediaFile) { $mediaFile->delete(); } $blog->delete(); } // service delete $user = User::find($user->id); $services = VcardService::whereHas('vcard', function ($query) use ($user) { $query->where('tenant_id', $user->tenant_id); })->get(); foreach ($services as $service) { $mediaFiles = $service->getMedia('service_icon'); foreach ($mediaFiles as $mediaFile) { $mediaFile->delete(); } $service->delete(); } // gallery delete $user = User::find($user->id); $gallaries = Gallery::whereHas('vcard', function ($query) use ($user) { $query->where('tenant_id', $user->tenant_id); })->get(); foreach ($gallaries as $gallery) { $mediaFiles = $gallery->getMedia('image'); foreach ($mediaFiles as $mediaFile) { $mediaFile->delete(); } $gallery->delete(); } //nfcOrder delete $nfcOrders = NfcOrders::where('user_id', $user->id)->get(); foreach ($nfcOrders as $nfcOrder) { $mediaFiles = $nfcOrder->getMedia('logo'); foreach ($mediaFiles as $mediaFile) { $mediaFile->delete(); } $nfcOrder->delete(); } $vcards = Vcard::where('tenant_id', $user->tenant_id)->get(); foreach ($vcards as $vcard) { $mediaFiles = $vcard->getMedia('profile '); foreach ($mediaFiles as $mediaFile) { $mediaFile->delete(); } $vcard->delete(); } MultiTenant::where('id', $user->tenant_id)->delete(); $user->delete(); session()->flush(); return Redirect::route('home'); } return $this->sendError('Seems, you are not allowed to access this record.'); } catch (\Exception $e) { Log::error('Error deleting user: ' . $e->getMessage()); Flash::error(__('Error deleting user. Please try again.')); return Redirect::back(); } } }