<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Yajny\Member\Models\Currencies;
use Yajny\Member\Models\LoyaltyProgram;
use Yajny\Member\Models\Member;
use Yajny\Member\Models\Sale;
use Yajny\Models\Store;

class ReferralController extends Controller
{
    /**
     * @var mixed
     */
    public $user_id;

    /** @var Member $member */
    public $member;

    /**
     * Create a new controller instance.
     *
     * @param Request $request
     */
    public function __construct(Request $request)
    {

        //  dd($request->get('user_id'));
        $is_valid = true;
        $user_id = $request->get('user_id');
        if (!$user_id)
            $is_valid = false;

        $this->user_id = $user_id;
        if (!$this->user_id > 0)
            $is_valid = false;

        $this->member = Member::find($this->user_id);
        if (!$this->member)
            $is_valid = false;

        if (!$is_valid) {
            echo '[]';
            die;
        }
    }

    public function getReferredusers()
    {
        $referred_users_list=[];
        $referred_users=$this->member->referred_users()->get();
        foreach ($referred_users as $referred_user){
            if(DB::table('user_sales')->where('user_id',$referred_user->user_id)->where('status',"confirmed")->first()){
                $have_confirmed_order="true";
            }else{
                $have_confirmed_order="false";
            }
            array_push($referred_users_list,array("referred_user"=>$referred_user,"have_order"=>$have_confirmed_order));
        }
        return ["total_referred_user"=>count($referred_users),"referred_users"=>$referred_users_list];
    }

    public function getReferredleaderboard(Request $request){
        $data=[];
        $total_cashback=0;
        $referred_users_history=DB::table('referral_cashback_bonus')->where('referral_user_id',$request->user_id)->get();
        foreach ($referred_users_history as $element){
            $user=DB::table('users')->where('user_id',$element->referrer_user_id)->first();
            foreach (DB::table("user_sales")->where('user_id',$element->referrer_user_id)->get() as $element){
                $total_cashback=$total_cashback+$element->order_amount;
            }
            $data[]=array("total_cashback"=>$total_cashback,"referred_user_cashback"=>$element,"referred_user"=>$user);
        }
        return ["referred_users_history"=>$data];
    }


}
