<?php

namespace App\Http\Controllers\Yonetim;

use App\Http\Controllers\Controller;
use App\Models\Bloglar;
use App\Models\Paketler;
use App\Models\Script;
use App\Models\Scriptkategori;
use App\Models\Sitemap;
use App\Models\Siteslug;
use App\Models\Urunler;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;


class SitemapController extends Controller
{
    public function index()
    {
        $sitemapdata=Sitemap::all();


        // Onay formunu gösterin
        return view('yonetim.sitemapayar.veriler', compact('sitemapdata'));
    }

    public function store(Request $request)
    {


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




            $siteslug=Siteslug::find(1);
            $blogs = Bloglar::all();



            $staticPageSlug = SiteSlug::find(1);
            $siteURL = env('APP_URL');

            $anasayfaSitemap = Sitemap::where('url', $siteURL . $staticPageSlug->anasayfa)->first();
            if ($anasayfaSitemap) {
                // Eğer kayıt varsa, tarihi güncelle
                $anasayfaSitemap->lastmod = Carbon::now()->toW3cString();
                $anasayfaSitemap->save();
            } else {
                // Kayıt yoksa, yeni kaydı ekle
                $sitemap = new Sitemap;
                $sitemap->url = $siteURL . $staticPageSlug->anasayfa;
                $sitemap->lastmod = Carbon::now()->toW3cString();
                $sitemap->changefreq = 'daily';
                $sitemap->priority = '0.8';
                $sitemap->save();
            }

            $pages = [

                $staticPageSlug->hakkimizda,
                $staticPageSlug->yorumlar,
                $staticPageSlug->hesapbilgilerimiz,
                $staticPageSlug->ssller,
                $staticPageSlug->scriptler,
                $staticPageSlug->bloglar,
                $staticPageSlug->referanslarimiz,
                $staticPageSlug->iletisim,
                $staticPageSlug->bayilik,
                $staticPageSlug->paketler,
                $staticPageSlug->urunler,
                $staticPageSlug->servisler,

            ];

            foreach ($pages as $page) {
                $sitemap = Sitemap::where('url', url('/') . $page)->first();
                if (!$sitemap) {
                    $sitemap = new Sitemap;
                    $sitemap->url = url('/') . $page;
                }
                $sitemap->lastmod = Carbon::now()->toW3cString();
                $sitemap->changefreq = 'daily';
                $sitemap->priority = '0.8';
                $sitemap->save();
            }




            foreach ($blogs as $blog) {
                $sitemapUrl = url($siteslug->blogdetay.'/'.$blog->slug);
                $recordExists = Sitemap::where('url', $sitemapUrl)->first();

                if ($recordExists) {
                    // Eğer kayıt varsa, tarih kontrolü yapılabilir
                    $lastmod = $blog->updated_at->toDateTimeString();

                    if ($recordExists->lastmod != $lastmod) {
                        // Tarih güncellenmiş, kaydı sil ve yeniden ekle
                        $recordExists->delete();
                        $sitemap = new Sitemap;
                        $sitemap->url = $sitemapUrl;
                        $sitemap->lastmod = $lastmod;
                        $sitemap->changefreq = 'weekly';
                        $sitemap->priority = '0.8';
                        $sitemap->save();
                    }
                } else {
                    // Kayıt yok, yeni kaydı ekle
                    $sitemap = new Sitemap;
                    $sitemap->url = $sitemapUrl;
                    $sitemap->lastmod = $blog->updated_at->toDateTimeString();
                    $sitemap->changefreq = 'weekly';
                    $sitemap->priority = '0.8';
                    $sitemap->save();
                }
            }

            $scriptkategori=Scriptkategori::all();

            foreach ($scriptkategori as $kategori) {
                $sitemapUrl = url($siteslug->scriptlist.'/'.$kategori->slug);
                $recordExists = Sitemap::where('url', $sitemapUrl)->first();

                if ($recordExists) {
                    // Eğer kayıt varsa, tarih kontrolü yapılabilir
                    $lastmod = $kategori->updated_at->toDateTimeString();

                    if ($recordExists->lastmod != $lastmod) {
                        // Tarih güncellenmiş, kaydı sil ve yeniden ekle
                        $recordExists->delete();
                        $sitemap = new Sitemap;
                        $sitemap->url = $sitemapUrl;
                        $sitemap->lastmod = $lastmod;
                        $sitemap->changefreq = 'weekly';
                        $sitemap->priority = '0.8';
                        $sitemap->save();
                    }
                } else {
                    // Kayıt yok, yeni kaydı ekle
                    $sitemap = new Sitemap;
                    $sitemap->url = $sitemapUrl;
                    $sitemap->lastmod = $kategori->updated_at->toDateTimeString();
                    $sitemap->changefreq = 'weekly';
                    $sitemap->priority = '0.8';
                    $sitemap->save();
                }
            }


            $scriptler=Script::all();
            foreach ($scriptler as $script) {
                $sitemapUrl = url($siteslug->scriptdetay.'/'.$script->baslik_slug);
                $recordExists = Sitemap::where('url', $sitemapUrl)->first();

                if ($recordExists) {
                    // Eğer kayıt varsa, tarih kontrolü yapılabilir
                    $lastmod = $script->updated_at->toDateTimeString();

                    if ($recordExists->lastmod != $lastmod) {
                        // Tarih güncellenmiş, kaydı sil ve yeniden ekle
                        $recordExists->delete();
                        $sitemap = new Sitemap;
                        $sitemap->url = $sitemapUrl;
                        $sitemap->lastmod = $lastmod;
                        $sitemap->changefreq = 'weekly';
                        $sitemap->priority = '0.8';
                        $sitemap->save();
                    }
                } else {
                    // Kayıt yok, yeni kaydı ekle
                    $sitemap = new Sitemap;
                    $sitemap->url = $sitemapUrl;
                    $sitemap->lastmod = $script->updated_at->toDateTimeString();
                    $sitemap->changefreq = 'weekly';
                    $sitemap->priority = '0.8';
                    $sitemap->save();
                }
            }

            $paketler=Paketler::all();
            foreach ($paketler as $paket) {
                $sitemapUrl = url($siteslug->paketdetay.'/'.$paket->slug);
                $recordExists = Sitemap::where('url', $sitemapUrl)->first();

                if ($recordExists) {
                    // Eğer kayıt varsa, tarih kontrolü yapılabilir
                    $lastmod = $paket->updated_at->toDateTimeString();

                    if ($recordExists->lastmod != $lastmod) {
                        // Tarih güncellenmiş, kaydı sil ve yeniden ekle
                        $recordExists->delete();
                        $sitemap = new Sitemap;
                        $sitemap->url = $sitemapUrl;
                        $sitemap->lastmod = $lastmod;
                        $sitemap->changefreq = 'weekly';
                        $sitemap->priority = '0.8';
                        $sitemap->save();
                    }
                } else {
                    // Kayıt yok, yeni kaydı ekle
                    $sitemap = new Sitemap;
                    $sitemap->url = $sitemapUrl;
                    $sitemap->lastmod = $paket->updated_at->toDateTimeString();
                    $sitemap->changefreq = 'weekly';
                    $sitemap->priority = '0.8';
                    $sitemap->save();
                }
            }











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

        }


    }


    public function edit($id){
        $sitemapdata=Sitemap::findOrFail($id);

        return view('yonetim.sitemapayar.veriedit', compact('sitemapdata'));

    }

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

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

        if ($oturumyetki==2 || $oturumyetki==1) {
            Sitemap::findOrFail($id)->update([
                'changefreq'=>$request->changefreq,
                'priority' => $request->priority,
                'durum'=>$request->durum,
            ]);


            return redirect()->route('sitemap.veriler')->with('success', 'Sitemap Güncelleme işlemleri Tamamlandı');
        }
        else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }

    }

    public function show()
    {
        // Sitemap.xml dosyasını görüntüleyin
        return response()->file(public_path('sitemap.xml'));
    }

    public function verisil($id){

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

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

            return redirect()->route('sitemap.veriler')->with('success', 'Silme İşlemi Başarıyla Tamamlandı...');
        }
        else{
            return redirect()->route('sitemap.veriler')->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }
}
