<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Auth\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Http\Request;
use App\Models\blog_content;
use App\Models\jobs;
use App\Models\jobtitles;

class AddJobController extends Controller
{
    
    public function totalJob(){

        if(!Auth::check()){
           return redirect('admin');
          }
        $blogs = blog_content::orderBy('date_blog')->take(10)->get();
        $total = blog_content::count('id');
        return view("auth.dashboard", compact('blogs','total')) ;
    } 
    public function addJob(){
        if(!Auth::check()){
            return redirect('admin');
           }
        $jobTitles = jobtitles::all();
        return view('auth.add-job',compact('jobTitles'));       

    }

    public function addjobsubmit(Request $request)
    {

        if(!Auth::check()){
            return redirect('admin');
           }
        // Validate the request data
        $validated = $request->validate([
            'jobtitle' => 'required|exists:jobtitle,id',
            'jobtype' => 'required|string|max:255',
            'posted_date' => 'required|date',
            'location' => 'required|string|max:255',
            'salary' => 'required|max:255',
            'jobdescription' => 'required',
        ]);

        // Create a new job record
        $job = new jobs();
        $job->jobtitle = $request->input('jobtitle');
        $job->jobtype = $request->input('jobtype');
        $job->posted_date = $request->input('posted_date');
        $job->location = $request->input('location');
        $job->salary = $request->input('salary');
        $job->jobdescription = $request->input('jobdescription');
        $job->status = 'Active';
        $job->save();

        // Redirect with a success message
        return redirect()->route('add-job')->with('success', 'Job added successfully!');
    }

    public function viewJob(){
        // $jobs = jobs::all();
        $jobs = jobs::with('jobTitle')->get();
        return view('auth.view-job', compact('jobs'));
    }
    public function deleteJob($jobid)
    {
        if (!Auth::check()) {
            return redirect('admin');
        }

        $job = jobs::find($jobid);

        if ($job) {
            $job->delete();
            return redirect()->route('view.job')->with('success', 'Job deleted successfully!');
        } else {
            return redirect()->route('view.job')->with('error', 'Job not found!');
        }
    }
    public function jobEdit($jobid)
    {
        if(!Auth::check()){
            return redirect('admin');
           }
        $job = jobs::with('jobTitle')->find($jobid);

        if ($job) {
            $jobTitles = jobtitles::all(); // Fetch all job titles for the dropdown
            return view('auth.job-edit', compact('job', 'jobTitles'));
        } else {
            return redirect()->route('view.job')->with('error', 'Job not found!');
        }
    }
    public function updateJob(Request $request, $jobid)
    {
        if(!Auth::check()){
            return redirect('admin');
           }
        $validated = $request->validate([
            'title' => 'required|exists:jobtitle,id',
            'jobtype' => 'required|string|max:255',
            'posted_date' => 'required|date',
            'location' => 'required|string|max:255',
            'salary' => 'required|max:255',
            'jobdescription' => 'required',
        ]);

        $job = Jobs::find($jobid);

        if ($job) {

            $job->update([
                'jobtitle' => $request->input('title'),
                'jobtype' => $request->input('jobtype'),
                'posted_date' => $request->input('posted_date'),
                'location' => $request->input('location'),
                'salary' => $request->input('salary'),
                'jobdescription' => $request->input('jobdescription'),
            ]);
            return redirect()->route('view.job')->with('success', 'Job updated successfully!');
        } 
        else 
        {
            return redirect()->route('view.job')->with('error', 'Job not found!');
        }
    }
    public function changeStatus($jobid)
    {
        if(!Auth::check()){
            return redirect('admin');
           }
        $job = jobs::find($jobid);

        if ($job) {
            $job->status = $job->status === 'Active' ? 'Inactive' : 'Active';
            $job->save();

            return redirect()->route('view.job')->with('success', 'Job status updated successfully!');
        } else {
            return redirect()->route('view.job')->with('error', 'Job not found!');
        }
    }
    

  
}
