user(); $user_id = $token['sub']; $oldUserRankings = LeaderboardMaster::with('user')->get(); $currentDate = now()->toDateString(); $previousDate = now()->subDay()->toDateString(); // Check if a record for the current user and current day already exists $existingRecord = mood_o_meter::where('user_id', $user_id) // ->whereDate('created_at', now()->toDateString()) ->whereDate('updated_at', $currentDate) ->where('is_active','0') ->first(); if ($existingRecord) { // Update the existing mood record $existingRecord->update([ 'mood_o_meter' => $req->input('mood_o_meter'), 'is_active' => '0', ]); return response([ 'status' => "Mood already added for today", ], 200); } else { // Check if a record for the current user and previous day exists // $previousRecord = mood_o_meter::where('user_id', $user_id) // ->whereDate('updated_at', $previousDate) // // ->first(); // if ($previousRecord) { // Create a new mood record for the current day mood_o_meter::where('user_id', $user_id) ->update([ 'mood_o_meter' => $req->input('mood_o_meter'), 'is_active' => '0' ]); // } // else { // // mood_o_meter::create([ // 'user_id' => $user_id, // 'mood_o_meter' => $req->input('mood_o_meter'), // 'is_active' => '0', // ]); // } // Update is_active column based on the current time $ranking = LeaderboardMaster::with('user')->where('user_id', $user_id)->first(); // Check if user exists in another table $leaderboardMaster = LeaderboardMaster::where('user_id', $user_id)->first(); if ($leaderboardMaster) { // Update points if user exists $leaderboardMaster->increment('total_score', 1); } else { // Create a new entry with 1 point if user doesn't exist LeaderboardMaster::create([ 'user_id' => $token['sub'], 'total_score' => 1, ]); } $newUserRanking = LeaderboardMaster::where('user_id', $user_id)->first(); if ($newUserRanking) { // dd($oldUserRankings); // $message = 'Hello World'; // echo '
';
//                print_r($ranking);
//                exit();
//                foreach ($oldUserRankings as $ranking) {
                    $previousTotalScore = $ranking->total_score;
                    $currentTotalScore = $newUserRanking->total_score;
                    if ($ranking->user_id == $user_id) {
                        if ($previousTotalScore === null) {
                            $ranking->progress_bar = '0'; // Initial entry
                        } elseif ($currentTotalScore > $previousTotalScore) {
                            $ranking->progress_bar = '0'; // Total score increased
                            $message = "You earned 1 point!";
                        } elseif ($currentTotalScore < $previousTotalScore) {
                            $ranking->progress_bar = '1'; // Total score decreased
                            $message = "Your score decreased.";
                        } else {
                            $ranking->progress_bar = '2'; // Total score remained the same
                            $message = "Your score remains the same.";
                        }
                        $ranking->save(); // Save the updated progress_bar value
                        
                    }
//                }
//             dd($userRanking,$newUserRanking);
                return response()->json([
                    'success' => true,
                    'progress_bar' => $message,
                ]);
                
            }
            return response([
                'status' => "Success",
                    ], 200);
        }
    }
        } catch (Exception $ex) {
            return response([
                'status' => "failed",
                    ], 500);
        }
    }

    
    public function get_mood_o_meter() {
        try {
//            print_r(User::first()->user);exit;
            $token = readHeaderToken();
            if ($token) {
                $user_id = $token['sub'];
                $data = mood_o_meter::where('user_id', $user_id)->value('is_active');
                return response()->json([
                            'success' => true,
                            'message' => 'Data fetched successfully.',
                            'result' => $data
                ]);
            } else {
                return response()->json([
                            'success' => false,
                            'message' => 'Authentication failed.',
                ]);
            }
        } catch (\Exception $e) {
            \Log::error("User data listing Failed : " . $e->getMessage());
            return response()->json([
                        'success' => false,
                        'message' => 'Something Went wrong.',
            ]);
        }
    }
    
    public function get_mood_o_meter_mood() {
        try {
//            print_r(User::first()->user);exit;
            $token = readHeaderToken();
            if ($token) {
                $user_id = $token['sub'];
                $data = mood_o_meter::where('user_id', $user_id)->value('mood_o_meter');
                return response()->json([
                            'success' => true,
                            'message' => 'Data fetched successfully.',
                            'result' => $data
                ]);
            } else {
                return response()->json([
                            'success' => false,
                            'message' => 'Authentication failed.',
                ]);
            }
        } catch (\Exception $e) {
            \Log::error("User data listing Failed : " . $e->getMessage());
            return response()->json([
                        'success' => false,
                        'message' => 'Something Went wrong.',
            ]);
        }
    }

}