<?php

namespace App\Http\Controllers;

use App\Header;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;

class HeaderController extends Controller
{
    public function index(Request $request)
    {
        $params = $request->all();
        $uri = Arr::get($params, 'fullPath', '/');
        $query = Arr::get($params, 'query', []);
        //$fullPath = Arr::get($params, 'fullPath', '/');

        if (strpos($uri, "/profile/") !== false) {
            $uri = str_replace("/profile/", "", $uri);
            $uri = "/" . $uri;
        }
        $uri = str_replace("//", "/", $uri);
        $uri = str_replace("/?", "?", $uri);
        $uri = str_replace("?&", "?", $uri);
        $uri = str_replace("&&", "&", $uri);
        $uri = preg_replace('/(?:&|(\?))page=[^&]*(?(1)&|)?/i', "$1", $uri);
        $uri .= "||";
        $uri = str_replace("/||", "", $uri);
        $uri = str_replace("||", "", $uri);
        
        if (count($query) > 0) {
            foreach ($query as $k => $q) {
                if ($k == 'keyword') {
                    $uri = str_replace("&keyword=" . $q, "", $uri);        
                    //$uri = str_replace("&keyword=" . $q, "&keyword=*", $uri);        
                } else {
                    if ($q == null || $q == "") {
                        $uri = str_replace("&" . $k . "=" . $q, "", $uri);   
                    }
                }
            }    
        }
        $uri = preg_replace('/(?:&|(\?))keyword=[^&]*(?(1)&|)?/i', "$1", $uri);

        $seoMeta = Header::select('title', 'image', 'color', 'type')->where('is_activated', true)->where('is_deleted', false)->where('uri', $uri)->first();
        $data = ['title' => null, 'image' => null, 'color' => null, 'type' => 0];

        if(isset($seoMeta) && $seoMeta->title != null) {
            $data['title'] = $seoMeta->title;
            $data['image'] = ($seoMeta->image != null) ? $seoMeta->image : null;
            $data['color'] = ($seoMeta->color != null) ? $seoMeta->color : null;
            $data['type'] = ($seoMeta->type != null) ? $seoMeta->type : 0;
        }

        return response()->json(['data' => $data], 200);
    }
}
