<?php

namespace App\Http\Controllers\Yonetim;

use App\Http\Controllers\Controller;
use App\Models\Hosting_Ozellikler;
use App\Models\Paket_icerik;
use App\Models\Paket_Ozellikler;
use App\Models\Paket_sssler;
use App\Models\Paket_urunler;
use App\Models\Paketler;
use App\Models\Resimformat;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
use Image;

class PaketlerController extends Controller
{
    public function veriler(){
        $veriler = Paketler::all();

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

    public function veriekle(){

        return view('yonetim.paketler.paketekle');
    }

    public function veriekleson(Request $request){


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

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

            $paketidsi=Paketler::create([
                'baslik'=>$request->baslik,
                'slug'=>Str::slug($request->baslik),
                'durum'=>1,
                'created_at' => Carbon::now(),
            ]);


            Paket_icerik::insert([
                'baslik1' => $request->baslik,
                'alticerik' => "alt içerik gelecek",
                'baslik2' => "başlık 2 gelecek",
                'icerik' => "içerik",
                'sayac1' => "5",
                'sayac1icerik' =>"Toplam Deneyim",
                'sayac2' => "200",
                'sayac2icerik' => "Toplam Hizmet",
                'sayac3' => "300",
                'sayac3icerik' => "Toplam Müşteri",
                'baslik3' => "Sıkça Sorulanlar Başlığı",
                'resimyol'=>"ss",
                'resimyol2'=>"ss",
                'paket_id'=>$paketidsi->id,
                'created_at' => Carbon::now(),
            ]);

            return redirect()->route('paket.all')->with('success', 'Ekleme Başarılı...');
        }
        else{
            return redirect()->route('paket.all')->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }


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



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

            ]);




            return redirect()->back()->with('success', 'Güncellemesss İşlemi Başarıyla Tamamlandı');


    }


    public function veridelete($id){


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

        if ($oturumyetki==2 || $oturumyetki==1) {
            Paketler::findOrFail($id)->delete();
            return redirect()->back()->with('success', 'Silme İşlemi Başarıyla Tamamlandı, Dinamik Menü Yönetiminden linki mutlaka kaldırıdınız');
        }
        else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }



    public function seopicerik($id){

        $paketveri=Paketler::findOrFail($id);
        $veriler = Paket_icerik::where('paket_id',$id)->first();
        $paketurunler=Paket_urunler::where('paket_id',$id)->get();
        $paketsssler=Paket_sssler::where('paket_id',$id)->get();


        return view('yonetim.paketler.paketedit',compact('veriler','paketveri','paketurunler','paketsssler'));
    }

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

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


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


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



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

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


            $name_gen2 = $rastgeleSayi.'_'.$dosyaAdi.'.'.$resimtur;
            Image::make($image2)->encode($resimtur, $resimkalite)->save('upload/paket/' . $name_gen2);
            $save_url2 = 'upload/paket/'.$name_gen2;


            Paket_icerik::where('paket_id',$id)->update([
                'resimyol2'=>$save_url2,
            ]);



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

            }

        }


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


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


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



            $image = $request->file('resimyol');
            $name_gen = hexdec(uniqid()).'.'.$resimtur;  // 3434343443.jpg
            Image::make($image)->encode($resimtur, $resimkalite)->save('upload/paket/' . $name_gen);
            $save_url = 'upload/paket/'.$name_gen;



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

            }

            Paket_icerik::where('paket_id',$id)->update([
                'baslik1' => $request->baslik1,
                'alticerik' => $request->alticerik,
                'baslik2' => $request->baslik2,
                'icerik' => $request->icerik,
                'sayac1' => $request->sayac1,
                'sayac1icerik' => $request->sayac1icerik,
                'sayac2' => $request->sayac2,
                'sayac2icerik' => $request->sayac2icerik,
                'sayac3' => $request->sayac3,
                'sayac3icerik' => $request->sayac3icerik,
                'baslik3' => $request->baslik3,
                'resimyol_alt'=>$request->resimyol_alt,
                'resimyol2_alt'=>$request->resimyol2_alt,
                'resimyol'=>$save_url,
                'updated_at' => Carbon::now(),
            ]);



            return redirect()->back()->with('success', 'Güncelleme İşlemi Başarıyla Tamamlandı');
        }else{

            Paket_icerik::where('paket_id',$id)->update([
                'baslik1' => $request->baslik1,
                'alticerik' => $request->alticerik,
                'baslik2' => $request->baslik2,
                'icerik' => $request->icerik,
                'sayac1' => $request->sayac1,
                'sayac1icerik' => $request->sayac1icerik,
                'sayac2' => $request->sayac2,
                'sayac2icerik' => $request->sayac2icerik,
                'sayac3' => $request->sayac3,
                'sayac3icerik' => $request->sayac3icerik,
                'baslik3' => $request->baslik3,
                'resimyol_alt'=>$request->resimyol_alt,
                'resimyol2_alt'=>$request->resimyol2_alt,
                'updated_at' => Carbon::now(),

            ]);


            return redirect()->back()->with('success', 'Güncellemesss İşlemi Başarıyla Tamamlandı');


        }


    }



    public function paketveriekle($paket_id){

        $paketveri=Paketler::findOrFail($paket_id);

        return view('yonetim.paketler.paketurunekle',compact('paketveri'));
    }
    public function paketveriekleson(Request $request,$id){


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

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

            $eklenenid=Paket_urunler::create([
                'baslik'=>$request->baslik,
                'alt_baslik'=>$request->alt_baslik,
                'iconyol'=>$request->iconyol,
                'fiyat'=>$request->fiyat,
                'sure'=>$request->sure,
                'paket_id'=>$id,
                'created_at' => Carbon::now(),
            ]);


            $hiddenInputs = $request->input('hiddenInput');
            $hiddenInputIcons = $request->input('hiddenInputIcons');

            $hiddenInputArray = explode(',', $hiddenInputs);
            $hiddenInputIconsArray = explode(',', $hiddenInputIcons);

            $count = count($hiddenInputArray);

            for ($i = 0; $i < $count; $i++) {
                $hiddenInput = $hiddenInputArray[$i];
                $hiddenInputIcon = $hiddenInputIconsArray[$i];

                Paket_Ozellikler::create([
                    'baslik' => $hiddenInput,
                    'iconyol' => $hiddenInputIcon,
                    'paket_urun_id' => $eklenenid->id,
                    'created_at' => Carbon::now(),
                ]);
            }

            return redirect()->route('seopicerik.veriupdate',$id)->with('success', 'Ekleme Başarılı...');
        }
        else{
            return redirect()->route('seopicerik.veriupdate',$id)->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }
    public function paketveriupdate($id,$paket_id){

        $paketveri=Paketler::findOrFail($paket_id);

        $veriler=Paket_urunler::findOrFail($id);
        $ozellikler=Paket_Ozellikler::where('paket_urun_id',$id)->get();


        return view('yonetim.paketler.paketurunedit',compact('paketveri','veriler','ozellikler'));
    }
    public function paketveriupdateson(Request $request,$id,$paket_id){


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

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

            Paket_urunler::findOrFail($id)->update([
                'baslik'=>$request->baslik,
                'alt_baslik'=>$request->alt_baslik,
                'iconyol'=>$request->iconyol,
                'fiyat'=>$request->fiyat,
                'sure'=>$request->sure,
                'updated_at' => Carbon::now(),

            ]);


            // Önce hosting_urun_id'si eşleşen tüm verileri sil
            Paket_Ozellikler::where('paket_urun_id', $id)->delete();

            // Gizli input alanlarından gelen değerleri ayrıştır
            $hiddenInputs = $request->input('hiddenInput');
            $hiddenInputIcons = $request->input('hiddenInputIcons');

            $hiddenInputArray = explode(',', $hiddenInputs);
            $hiddenInputIconsArray = explode(',', $hiddenInputIcons);

            // Yeni verileri oluşturarak tabloya ekle
            for ($i = 0; $i < count($hiddenInputArray); $i++) {
                Paket_Ozellikler::create([
                    'baslik' => $hiddenInputArray[$i],
                    'iconyol' => $hiddenInputIconsArray[$i],
                    'paket_urun_id' => $id,
                    'created_at' => Carbon::now(),
                ]);
            }




            return redirect()->route('seopicerik.veriupdate',$paket_id)->with('success', 'Güncelleme Başarılı...');
        }
        else{
            return redirect()->route('seopicerik.veriupdate',$paket_id)->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }
    public function paketveridelete($id){


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

        if ($oturumyetki==2 || $oturumyetki==1) {
            Paket_urunler::findOrFail($id)->delete();
            return redirect()->back()->with('success', 'Silme İşlemi Başarıyla Tamamlandı');
        }
        else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }





    public function sssveriekle($paket_id){

        $paketveri=Paketler::findOrFail($paket_id);

        return view('yonetim.paketler.sssekle',compact('paketveri'));
    }
    public function sssveriekleson(Request $request,$id){


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

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

            Paket_sssler::insert([
                'baslik'=>$request->baslik,
                'icerik' => $request->icerik,
                'paket_id'=>$id,
                'created_at' => Carbon::now(),

            ]);

            return redirect()->route('seopicerik.veriupdate',$id)->with('success', 'Ekleme Başarılı...');
        }
        else{
            return redirect()->route('seopicerik.veriupdate',$id)->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }
    public function sssveriupdate($id,$paket_id){

        $paketveri=Paketler::findOrFail($paket_id);

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

        return view('yonetim.paketler.sssedit',compact('paketveri','veriler'));
    }
    public function sssveriupdateson(Request $request,$id,$paket_id){


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

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

            Paket_sssler::findOrFail($id)->update([
                'baslik'=>$request->baslik,
                'icerik'=>$request->icerik,
                'updated_at' => Carbon::now(),

            ]);

            return redirect()->route('seopicerik.veriupdate',$paket_id)->with('success', 'Güncelleme Başarılı...');
        }
        else{
            return redirect()->route('seopicerik.veriupdate',$id)->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }




    }
    public function sssveridelete($id){


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

        if ($oturumyetki==2 || $oturumyetki==1) {
            Paket_sssler::findOrFail($id)->delete();
            return redirect()->back()->with('success', 'Silme İşlemi Başarıyla Tamamlandı');
        }
        else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }

}
