@php use Illuminate\Support\Facades\DB; use App\User; use App\Plan; use App\BusinessCard; use Carbon\Carbon; // Queries $config = DB::table('config')->get(); // Card details $business_card = BusinessCard::where('card_id', Request::segment(3))->first(); // Fetch the user plan $plan = User::where('user_id', Auth::user()->user_id)->first(); $active_plan = json_decode($plan->plan_details, true); if ($active_plan) { // Fetch the default plan details only once if necessary if ( !$active_plan || !isset($active_plan['appointment']) || !isset($active_plan['custom_domain']) || !isset($active_plan['nfc_card']) || !isset($active_plan['storage']) || !isset($active_plan['service_booking']) ) { $planDefaults = Plan::where('plan_id', $plan->plan_id)->first(); } // Check and assign missing plan details $active_plan['appointment'] = $active_plan['appointment'] ?? $planDefaults->appointment; $active_plan['custom_domain'] = $active_plan['custom_domain'] ?? $planDefaults->appointment; $active_plan['nfc_card'] = $active_plan['nfc_card'] ?? $planDefaults->nfc_card; $active_plan['storage'] = $active_plan['storage'] ?? $planDefaults->storage; $active_plan['service_booking'] = $active_plan['service_booking'] ?? $planDefaults->service_booking; // Update plan details if necessary if ($active_plan !== json_decode($plan->plan_details, true)) { $plan->plan_details = json_encode($active_plan); $plan->updated_at = Carbon::now(); $plan->save(); } // Fetch the updated plan details $active_plan = json_decode($plan->plan_details, true); } @endphp