<?php

namespace App\Http\Controllers;

use App\Models\AkademisiDetails;
use App\Models\InvestorDetails;
use App\Models\KomunitasDetails;
use App\Models\PemerintahDetails;
use App\Models\PenawaranProject;
use App\Models\permohonanPelatihan;
use App\Models\permohonanPendanaan;
use App\Models\permohonanProject;
use App\Models\permohonanProyekInvestor;
use App\Models\permohonanRiset;
use App\Models\Project;
use App\Models\UmkmDetails;
use Illuminate\Http\Request;

class LandingPageController extends Controller
{
    // public function index(Request $request)
    // {
    //     // Query builder untuk proyek
    //     $query = permohonanProject::query();

    //     // Menambahkan filter jika ada parameter
    //     if ($request->has('judul_project') && $request->input('judul_project') != '') {
    //         $query->where('judul_project', 'like', '%' . $request->input('judul_project') . '%');
    //     }

    //     if ($request->has('bidang') && $request->input('bidang') != '') {
    //         $query->where('bidang_sub_sektor_ekonomi_kreatif', 'like', '%' . $request->input('bidang') . '%');
    //     }

    //     if ($request->has('tanggal_mulai') && $request->input('tanggal_mulai') != '') {
    //         $query->whereDate('tanggal_mulai', '>=', $request->input('tanggal_mulai'));
    //     }

    //     if ($request->has('tanggal_berakhir') && $request->input('tanggal_berakhir') != '') {
    //         $query->whereDate('tanggal_berakhir', '<=', $request->input('tanggal_berakhir'));
    //     }

    //     if ($request->has('kategori') && $request->input('kategori') != '') {
    //         $query->where('kategori', $request->input('kategori'));
    //     }

    //     if ($request->has('batas_terima_tawaran') && $request->input('batas_terima_tawaran') != '') {
    //         $query->whereDate('batas_terima_tawaran', '<=', $request->input('batas_terima_tawaran'));
    //     }

    //     // Mengambil proyek yang sudah difilter
    //     $projects = $query->get();

    //     // Mengembalikan tampilan dengan data proyek
    //     return view('landing page.index', ['projects' => $projects]);
    // }

    public function index()
    {
        // Menghitung jumlah setiap role
        $jumlah_pemerintah = PemerintahDetails::count();
        $jumlah_umkm = UmkmDetails::count();
        $jumlah_komunitas = KomunitasDetails::count();
        $jumlah_akademisi = AkademisiDetails::count();
        $jumlah_investor = InvestorDetails::count();

        // Menghitung jumlah penawaran proyek yang statusnya 'berjalan'
        $jumlah_penawaran_project_aktif = PenawaranProject::where('status', 'Berjalan')->count();

        // Menghitung jumlah penawaran proyek yang statusnya 'berjalan'
        $jumlah_penawaran_project_coming_soon = PenawaranProject::where('status', 'Coming Soon')->count();

        // Menghitung jumlah permohonan berdasarkan status
        $jumlah_permohonan_project_aktif = [
            'pelatihan' => PermohonanPelatihan::where('status_pelatihan', 'berjalan')->count(),
            'pendanaan' => PermohonanPendanaan::where('status_pendanaan', 'berjalan')->count(),
            'riset' => PermohonanRiset::where('status_riset', 'berjalan')->count(),
            'project_investor' => PermohonanProyekInvestor::where('status_project', 'berjalan')->count(),
        ];

        // Hitung total permohonan project
        $total_permohonan_project_aktif = array_sum($jumlah_permohonan_project_aktif);

        // Menghitung jumlah permohonan berdasarkan status
        $jumlah_permohonan_project_coming_soon = [
            'pelatihan' => PermohonanPelatihan::where('status_pelatihan', 'coming soon')->count(),
            'pendanaan' => PermohonanPendanaan::where('status_pendanaan', 'coming soon')->count(),
            'riset' => PermohonanRiset::where('status_riset', 'coming soon')->count(),
            'project_investor' => PermohonanProyekInvestor::where('status_project', 'coming soon')->count(),
        ];

        // Hitung total permohonan project
        $total_permohonan_project_coming_soon = array_sum($jumlah_permohonan_project_coming_soon);

        $PenawaranProjectPendanaan = PenawaranProject::with('pendanaan')->whereHas('pendanaan')->get();
        $PenawaranProjectPelatihan = PenawaranProject::with('pelatihan')->whereHas('pelatihan')->get();
        $PenawaranProjectRiset = PenawaranProject::with('riset')->whereHas('riset')->get();


        $PermohonanProjectPelatihan = permohonanProject::with('pelatihan')->whereHas('pelatihan')->get();
        $PermohonanProjectPendanaan = permohonanProject::with('pendanaan')->whereHas('pendanaan')->get();
        $PermohonanProjectRiset = permohonanProject::with('riset')->whereHas('riset')->get();

        // Menggabungkan kedua koleksi menggunakan union
        $combinedProjectsPelatihan = $PenawaranProjectPelatihan->concat($PermohonanProjectPelatihan);
        $combinedProjectsPendanaan = $PenawaranProjectPendanaan->concat($PermohonanProjectPendanaan);
        $combinedProjectsRiset = $PenawaranProjectRiset->concat($PermohonanProjectRiset);

        // Mengirim data ke view
        return view('landing page.index', compact(
            'jumlah_pemerintah',
            'jumlah_umkm',
            'jumlah_komunitas',
            'jumlah_akademisi',
            'jumlah_investor',
            'jumlah_penawaran_project_aktif',
            'jumlah_penawaran_project_coming_soon',
            'total_permohonan_project_aktif',
            'total_permohonan_project_coming_soon',
            'PermohonanProjectPelatihan',
            'PermohonanProjectPendanaan',
            'PermohonanProjectRiset',
            'combinedProjectsPelatihan',
            'combinedProjectsPendanaan',
            'combinedProjectsRiset'
        ));
    }




    public function show(string $id)
    {
        // Mencari proyek berdasarkan ID
        $project = permohonanProject::find($id);

        // Jika proyek ditemukan, tampilkan tampilan detail proyek
        if ($project) {
            return view('landing page.show', compact('project'));
        } else {
            return redirect()->route('landingpage.index')->with('error', 'Project not found');
        }
    }
}
