<?php

namespace App\Http\Controllers\Yonetim;

use App\Http\Controllers\Controller;
use App\Models\IstatistikModel;
use App\Models\Resimformat;

use App\Models\Urunler;
use App\Models\Urunler_kategori;

use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
use Image;

class UrunlerController extends Controller
{
    public function veriler(){
        $veriler = Urunler::latest()->get();

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

    public function veriekle(){
        $katveri=Urunler_kategori::all();

        return view('yonetim.urunler.urunekle',compact('katveri'));
    }

    public function veriekleson(Request $request){



        $oturumyetki = Auth::user()->yetki;
        if ($oturumyetki==2 || $oturumyetki==1) {
            $validated=$request->validate([
                '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/urun/' . $name_gen);
            $save_url = 'upload/urun/'.$name_gen;



            $kategorislug=Urunler_kategori::where('id',$request->kategori_id)->first();


            Urunler::insert([
                'baslik' => $request->baslik,
                'baslik_slug'=>Str::slug($request->baslik),
                'icerik' => $request->aciklama,
                'kampanya_tipi'=>$request->kampanya_tipi,
                'eski_fiyat' => $request->eski_fiyat,
                'fiyat' => $request->fiyat,
                'description'=>$request->description,
                'keywords'=>$request->keywords,
                'uruncat_id'=>$request->kategori_id,
                'cat_slug'=>$kategorislug->slug,
                'resimyol'=>$save_url,
                'resimyol_alt'=>$request->resimyol_alt,
                'created_at' => Carbon::now(),
                'updated_at' => Carbon::now(),

            ]);




            return redirect()->route('urun.all')->with('success','Ürün Başarıyla Eklendi');
        }else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }

    public function veriupdate($id){
        $katveri=Urunler_kategori::all();

        $veriler = Urunler::findOrFail($id);
        return view('yonetim.urunler.urunedit',compact('veriler','katveri'));
    }

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

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

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

            $kategorislug=Urunler_kategori::where('id',$request->kategori_id)->first();


            if ($request->file('resimyol')) {


                $validated=$request->validate([
                    '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/urun/' . $name_gen);
                $save_url = 'upload/urun/'.$name_gen;

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

                }




                Urunler::findOrFail($id)->update([
                    'baslik' => $request->baslik,
                    'baslik_slug'=>$request->baslik_slug,
                    'icerik' => $request->aciklama,
                    'kampanya_tipi'=>$request->kampanya_tipi,
                    'eski_fiyat' => $request->eski_fiyat,
                    'fiyat' => $request->fiyat,
                    'description'=>$request->description,
                    'keywords'=>$request->keywords,
                    'uruncat_id'=>$request->kategori_id,
                    'cat_slug'=>$kategorislug->slug,
                    'resimyol'=>$save_url,
                    'resimyol_alt'=>$request->resimyol_alt,
                    'durum'=>$request->durum,
                    'sira'=>$request->sira,
                    'updated_at' => Carbon::now(),
                ]);



                return redirect()->route('urun.all')->with('success', 'Ürün ve Resim Güncellendi...');
            }else{

                Urunler::findOrFail($id)->update([
                    'baslik' => $request->baslik,
                    'baslik_slug'=>$request->baslik_slug,
                    'icerik' => $request->aciklama,
                    'kampanya_tipi'=>$request->kampanya_tipi,
                    'eski_fiyat' => $request->eski_fiyat,
                    'fiyat' => $request->fiyat,
                    'description'=>$request->description,
                    'keywords'=>$request->keywords,
                    'uruncat_id'=>$request->kategori_id,
                    'cat_slug'=>$kategorislug->slug,
                    'durum'=>$request->durum,
                    'sira'=>$request->sira,
                    'resimyol_alt'=>$request->resimyol_alt,
                    'updated_at' => Carbon::now(),


                ]);

                return redirect()->route('urun.all')->with('success', 'Ürün Güncellendi...');


            }

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


        }



    }

    public function veridelete($id){

        $oturumyetki = Auth::user()->yetki;
        if ($oturumyetki==2 || $oturumyetki==1) {
            $vericek = Urunler::findOrFail($id);
            $resimyol=$vericek->resimyol;


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

            }




            Urunler::findOrFail($id)->delete();


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

        }


    }



    public function catveriler(){
        $veriler = Urunler_kategori::latest()->get();

        return view('yonetim.urunler.uruncatall',compact('veriler'));
    }

    public function catveriekle(){

        return view('yonetim.urunler.uruncatekle');
    }

    public function catveriekleson(Request $request){

        $oturumyetki = Auth::user()->yetki;
        if ($oturumyetki==2 || $oturumyetki==1) {
            Urunler_kategori::insert([
                'baslik' => $request->baslik,
                'slug'=>Str::slug($request->baslik),
                'description'=>$request->description,
                'keywords'=>$request->keywords,
                'created_at' => Carbon::now(),
                'updated_at' => Carbon::now(),



            ]);

            return redirect()->route('uruncat.all')->with('success','Kategori Eklendi...');

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

        }






    }

    public function catveriupdate($id){

        $veriler = Urunler_kategori::findOrFail($id);
        return view('yonetim.urunler.urunkatedit',compact('veriler'));
    }

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


        $oturumyetki = Auth::user()->yetki;
        if ($oturumyetki==2 || $oturumyetki==1) {

            Urunler_kategori::findOrFail($id)->update([
                'baslik' => $request->baslik,
                'description'=>$request->description,
                'keywords'=>$request->keywords,
                'slug'=>$request->slug,
                'updated_at' => Carbon::now(),


            ]);



            return redirect()->route('uruncat.all')->with('success', 'Kategori Güncellendi...');
        }else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }

    public function catveridelete($id){


        $oturumyetki = Auth::user()->yetki;
        if ($oturumyetki==2 || $oturumyetki==1) {
            Urunler_kategori::findOrFail($id)->delete();


            return redirect()->back()->with('success', 'Silme İşlemi Tamamlandı...');

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

        }


    }


}
