<?php

namespace App\Http\Controllers\Yonetim;

use App\Http\Controllers\Controller;
use App\Models\Blog_Kategori;
use App\Models\Blog_yorumlar;
use App\Models\Bloglar;
use App\Models\Resimformat;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use RealRashid\SweetAlert\Facades\Alert;
use Image;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Auth;


class BlogController extends Controller
{
    public function veriler(){
        $veriler = Bloglar::latest()->get();
        $blogcat=Blog_Kategori::all();

        return view('yonetim.blogayar.bloglar',compact('veriler','blogcat'));
    }

    public function veriekle(){
        $blogcat=Blog_Kategori::all();

        return view('yonetim.blogayar.blogekle',compact('blogcat'));
    }

    public function veriekleson(Request $request){


        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {

            $request->validate([
                'aciklama'=>'required',
                'resimyol' => 'required|image|mimes:jpg,png,jpeg,gif,webp|max:5048',
            ]);


            $resimbicimal=Resimformat::find(1);
            $resimtur=$resimbicimal->resimbicim;
            $resimkalite=$resimbicimal->resimkalite;

            $image = $request->file('resimyol');
            $dosyaAdi = pathinfo($image->getClientOriginalName(), PATHINFO_FILENAME);
            $dosyaAdi = str_replace(' ', '', $dosyaAdi);

            $rastgeleSayi = rand(10000, 99999); //


            $name_gen = $rastgeleSayi.'_'.$dosyaAdi.'.'.$resimtur;
            Image::make($image)->encode($resimtur, $resimkalite)->save('upload/blog/'.$name_gen);
            $save_url = 'upload/blog/'.$name_gen;


            Bloglar::insert([
                'baslik' => $request->baslik,
                'slug'=>Str::slug($request->baslik),
                'aciklama' => $request->aciklama,
                'kategori_id'=>$request->blogcat,
                'resimyol'=>$save_url,
                'description' => $request->description,
                'keywords'=>$request->keywords,
                'created_at' => Carbon::now(),
                'updated_at' => Carbon::now(),

            ]);

            return redirect()->route('blog.all')->with('success','Veriler Eklendi');
        }
        else{
            return redirect()->route('blog.all')->with('danger', 'İşlem Yetkiniz Kısıtlı..');

        }






    }






    public function veriupdate($id){

        $veriler = Bloglar::findOrFail($id);
        $blogcat=Blog_Kategori::all();


        return view('yonetim.blogayar.blogedit',compact('veriler','blogcat'));
    }

    public function veriupdateson(Request $request,$id){


        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {
            if ($request->file('resimyol')) {

                $request->validate([
                    'aciklama'=>'required',
                    'resimyol' => 'image|mimes:jpg,png,jpeg,gif,webp|max:5048',
                ]);

                $resimbicimal=Resimformat::find(1);
                $resimtur=$resimbicimal->resimbicim;
                $resimkalite=$resimbicimal->resimkalite;

                $image = $request->file('resimyol');
                $dosyaAdi = pathinfo($image->getClientOriginalName(), PATHINFO_FILENAME);
                $dosyaAdi = str_replace(' ', '', $dosyaAdi);

                $rastgeleSayi = rand(10000, 99999); //


                $name_gen = $rastgeleSayi.'_'.$dosyaAdi.'.'.$resimtur;
                Image::make($image)->encode($resimtur, $resimkalite)->save('upload/blog/'.$name_gen);
                $save_url = 'upload/blog/'.$name_gen;

                $eskiresimyol=$request->eskiresimyol;
                if (file_exists($eskiresimyol)){
                    unlink($eskiresimyol);

                }

                Bloglar::findOrFail($id)->update([
                    'baslik' => $request->baslik,
                    'slug'=>Str::slug($request->baslik),
                    'kategori_id' => $request->kategori_id,
                    'aciklama' => $request->aciklama,
                    'resimyol'=>$save_url,
                    'resimyol_alt'=>$request->resimyol_alt,
                    'description' => $request->description,
                    'keywords'=>$request->keywords,
                    'updated_at' => Carbon::now(),
                ]);


                return redirect()->route('blog.all')->with('success','Veriler Güncellendi...');

            }else{

                $request->validate([
                    'aciklama'=>'required',
                ]);

                Bloglar::findOrFail($id)->update([
                    'baslik' => $request->baslik,
                    'slug'=>Str::slug($request->baslik),
                    'kategori_id' => $request->kategori_id,
                    'aciklama' => $request->aciklama,
                    'resimyol_alt'=>$request->resimyol_alt,
                    'description' => $request->description,
                    'keywords'=>$request->keywords,
                    'updated_at' => Carbon::now(),


                ]);


                return redirect()->route('blog.all')->with('success','Veriler Güncellendi...');



            }
        }
        else{
            return redirect()->route('blog.all')->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }





    }

    public function veridelete($id){


        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {
            $vericek = Bloglar::findOrFail($id);
            $resimyol=$vericek->resimyol;

            if (file_exists($resimyol)){
                unlink($resimyol);

            }
            Bloglar::findOrFail($id)->delete();

            return redirect()->route('blog.all')->with('success','Veri Silindi...');
        }
        else{
            return redirect()->route('blog.all')->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }




    public function catekleson(Request $request){




        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {



            Blog_Kategori::insert([
                'baslik' => $request->baslik,
                'slug'=>Str::slug($request->baslik),
                'created_at' => Carbon::now(),
                'updated_at' => Carbon::now(),

            ]);

            return redirect()->route('blog.veriekle')->with('success','Veriler Eklendi');
        }
        else{
            return redirect()->route('blog.all')->with('danger', 'İşlem Yetkiniz Kısıtlı..');

        }






    }


    public function blogcatsil($id){


        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {
            Blog_Kategori::findOrFail($id)->delete();

            return redirect()->back()->with('success','Veri Silindi...');
        }
        else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }


    public function blogyorumlar(){
        $veriler = Blog_yorumlar::latest()->get();

        return view('yonetim.blogayar.blogyorumlar',compact('veriler'));
    }


    public function blogyorumlaredit($id){

        $veriler = Blog_yorumlar::findOrFail($id);

        return view('yonetim.blogayar.blogyorumlaredit',compact('veriler'));
    }

    public function blogyorumlareditson(Request $request,$id){

        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {


            Blog_yorumlar::findOrFail($id)->update([
                'durum' => $request->durum,
                'mesaj'=>$request->mesaj,
                'updated_at' => Carbon::now(),
            ]);




            return redirect()->route('blog.blogyorumlar')->with('success', 'Yorum Verileri Güncellendi...');

        }else{
            return redirect()->route('blog.blogyorumlar')->with('danger', 'İşlem Yetkiniz kısıtlı..');


        }
    }



    public function blogyorumsil($id){
        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {
            Blog_yorumlar::findOrFail($id)->delete();

            return redirect()->back()->with('success','Veri Silindi...');
        }
        else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }

    }

}
