<?php

namespace App\Http\Controllers;

use App\Models\Blog;
use App\Models\Consultant;
use App\Models\Contact;
use App\Models\Customer;
use App\Models\Service;
use App\Models\User;
use App\Models\Utility;
use App\Notifications\AdminNewContactNotification;
use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index()
    {
        $consultants = Consultant::orderBy('index_order')->limit(20)->get();
        $blogs = Blog::orderByDesc('created_at')->limit(5)->get();
        $utilities = Utility::get();
        $services = Service::get();
        $customers = Customer::get();

        return view('home.index', [
            'consultants' => $consultants,
            'blogs' => $blogs,
            'utilities' => $utilities,
            'services' => $services,
            'customers' => $customers
        ]);
    }

    public function services()
    {
        $services = Service::get();
        $utilities = Utility::get();
        return view('home.services', ['utilities' => $utilities, 'services' => $services]);
    }

    public function contact()
    {
        return view('home.contact');
    }

    public function about()
    {
        return view('home.about');
    }

    public function rules()
    {
        return view('home.rules');
    }

    public function contactRequest(Request $request)
    {
        $validate_data = $request->validate([
            'name' => ['required'],
            'phone' => ['required'],
            'description' => ['required'],
            'utility_id' => ['sometimes'],

        ]);

        Contact::create($validate_data);

        $admins = User::where('role', 'admin')->where('receive_sms', 1)->get();
        foreach ($admins as $admin){
            $admin->notify(new AdminNewContactNotification( $admin->mobile));
        }
        alert()->success('موفق', 'درخواست شما با موفقیت ثبت شد، کارشناسان ما با شما تماس خواهند گرفت');
        return redirect()->back();

    }
}
