<?php
/*
    * Created by VahabDev in Aparat Live
    * Website: https://pourfi.ir
    * Aparat Live: https://www.aparat.com/vahabdev/live
    * Aparat Channel: https://www.aparat.com/vahabdev
    * Rubika Channel: https://rubika.ir/vahabdev
    * Donate: https://reymit.ir/vahabdev
    * Telegram: https://t.me/vahabdev
*/


namespace App\Http\Controllers;

use App\Models\Client;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;

class authController extends Controller
{
    //
    public function index(){
        return view('auth.login');
    }


    public function dologin(Request $request){

        $validated = Validator::make($request->all(),[
            'mobilenumber' => ['required', 'regex:/^09\d{9}$/'],
            'password' => ['required', 'min:8'],
        ], [
            'mobilenumber.required' => 'ورود شماره همراه الزامی است',
            'mobilenumber.regex' => 'شماره موبایل حتما باید 11 رقم و با 09 شروع شود',
            'password.required' => 'وارد کردن رمز عبور الزامی است',
            'password.min' => 'حداقل مقدار رمز عبور باید 8 رقم باشد',
        ]);

        if($validated->fails()){
            return redirect()->back()->withInput()->withErrors($validated);
        }

        $phone = $request->input('mobilenumber');
        $password = $request->input('password');

        if(Client::where('phone', $phone)->exists()){
            $data = Client::where('phone', $phone)->first();
            if(md5($password) == $data->password){
                if($data->status == 'active'){
                    Session::put('uid', $data->id);
                    return back()->with('success', 'شما با موفقیت وارد پنل کاربری خود شدید');
                }
                return back()->with('info', 'وضعیت حساب شما ' . $data->status_label . ' می باشد و امکان دسترسی به پنل کاربری برای شما میسر نیست');
            }
        }

        return back()->with('warning', 'اطلاعات وارد شده صحیح نمی باشد');
    }



    public function register(){
        return view('auth.register');
    }
    public function doregister(Request $request){
        $validated = Validator::make($request->all(),[
            'firstname' => 'required',
            'lastname' => 'required',
            'mobileNumber' => ['required', 'regex:/^09\d{9}$/'],
            'password' => ['required', 'min:8'],
            'state' => 'required',
            'city' => 'required',
        ], [
            'mobileNumber.required' => 'ورود شماره همراه الزامی است',
            'mobileNumber.regex' => 'شماره موبایل حتما باید 11 رقم و با 09 شروع شود',
            'password.required' => 'وارد کردن رمز عبور الزامی است',
            'password.min' => 'حداقل مقدار رمز عبور باید 8 رقم باشد',
            'firstname.required' => 'وارد کردن نام الزامی است',
            'firstname.lastname' => 'وارد کردن نام خانوادگی الزامی است',
            'firstname.state' => 'وارد کردن استان الزامی است',
            'firstname.city' => 'وارد کردن شهر الزامی است',
        ]);

        if($validated->fails()){
            return redirect()->back()->withInput()->withErrors($validated);
        }

        if(Client::where('phone', $request->input('mobileNumber'))->exists()){
            return redirect()
                ->route('login')
                ->with('info', 'این شماره قبلا ثبت نام شده است');
        }

        $register = Client::create([
            'firstname' => $request->input('firstname'),
            'lastname' => $request->input('lastname'),
            'phone' => $request->input('mobileNumber'),
            'state' => $request->input('state'),
            'city' => $request->input('city'),
            'ip' => $request->ip(),
            'password' => md5($request->input('password')),
            'created_at' => now(),
        ]);

        if($register){
            Session::put('uid', $register->id);
            return redirect()
                ->route('dashboard')
                ->with('success', 'حساب شما با موفقیت ایجاد شد .');
        }
        return redirect()->back()->with('warning', 'متاسفانه در حال حاضر قادر به ثبت نام نیستید');


    }

    public function logout()
    {
        Session::put('uid', null);
        Session::forget('uid');
        return redirect()
            ->route('login')
            ->with('success', 'به امید دیدار مجدد شما');
    }

}
