<?php
/**
 * Created by Sublime.
 * User: sunilkhorwal
 * Date: 2021-10-12
 * Time: 16:17
 */
namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\MerchantCustomerJourney;
use Carbon\Carbon;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;

class CustomerMerchantJourney extends Controller {

    private $request;
    private $internal = false;

    public function __construct(Request $request){
        $this->request = $request;
    }

    public function index($merchant_id){
        $merchantCustomerJourney = MerchantCustomerJourney::where('merchant_id', $merchant_id)->get();
        return view('admin.merchant.customer_journey', ['id' => $merchant_id, 'merchantCustomerJourney' => $merchantCustomerJourney]);
    }

    public function saveRules($id){
        $v = $this->request->all();
        unset($v['_token']);
        if($v){
            $data = [];
            foreach($v as $z => $c){
                foreach($c as $l => $x){
                    $data[$l][$z] = $x[0];
                }
            }

            $merchantCustomerJourney = MerchantCustomerJourney::where('merchant_id', $id)->first(['id']);
            if(!isset($merchantCustomerJourney->id)){
                $merchantCustomerJourney = new MerchantCustomerJourney();
                $merchantCustomerJourney->created_at = Carbon::now()->toDateTimeString();
            }else{
                $merchantCustomerJourney = MerchantCustomerJourney::find($merchantCustomerJourney->id);
                $merchantCustomerJourney->updated_at = Carbon::now()->toDateTimeString();
            }
            $merchantCustomerJourney->merchant_id = $id;
            $merchantCustomerJourney->payload = json_encode($data);
            $merchantCustomerJourney->user_id = Auth::check() ? Auth::user()->id: null;
            $merchantCustomerJourney->save();
            if (isset($merchantCustomerJourney->id)) {
                Session::flash('success', 'Rules are updated successfully');
            }else{
                Session::flash('error', 'Please try again later');
            }
        }else{
            $merchantCustomerJourney = MerchantCustomerJourney::where('merchant_id', $id)->first(['id']);
            if(isset($merchantCustomerJourney->id)){
                MerchantCustomerJourney::where('merchant_id', $id)->delete();
                Session::flash('success', 'Rule deleted successfully');
            }else {
                Session::flash('error', 'Please create the rule first');
            }
        }

        return redirect()->back();
    }
}
