<?php

namespace App\Http\Controllers;
use App\AdminModel;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Mail;
use App\Mail\FidelityYoungEnterprenuerInitiativeAccountCreation;
use App\DataTables\AdminUsersDataTable;
class AdminUserController extends Controller
{
    public function index(AdminUsersDataTable $dt){
      auth()->guard('adminguard')->user()->logAdmin("View Users Table", 'View Users Table', 'Viewing all users table');
      return $dt->render('admin.users.index');
    }

    public function add(Request $r){
      $checkemail = AdminModel::where('email',$r->email)->first();
      if ($checkemail !==null) {
        return back()->with('error','Account with email'.$r->email.' already exists!');
      }else {
        $pass =Str::random(10);
        $createuser = DB::table('admin')->insert([
          'name'=>$r->name,
          'email'=>$r->email,
          'password'=>bcrypt($pass),
          'role'=>$r->role,
          "created_at" =>  \Carbon\Carbon::now(),
          "updated_at" => \Carbon\Carbon::now(),
        ]);
$role ='';
if ($r->role == 1) {
  $role = 'Super Admin Role';
}elseif ($r->role == 2) {
$role= 'Project Assistant Role';
}elseif ($r->role == 3) {
$role= 'Credit Analyst Role';
}
        $data=[
  'name'=>$r->name,
  'email'=>$r->email,
  'password'=>$pass,
  'role'=> $role,

];

auth()->guard('adminguard')->user()->logAdmin("Admin Account Creation", "Admin Account Creation", "Created a new admin: ".$data['name']." (Applicant Role: ".$data['role'].")");


   Mail::to($r->email)->send(new FidelityYoungEnterprenuerInitiativeAccountCreation($data));
  return back()->with('success','Admin Account Created Successfully!');
      }
    }


    public function updateuser(Request $r){
        $admin = AdminModel::query()->where('id', $r->user_id)->first();

      $rev = AdminModel::where('id',$r->user_id)->update([
        'name'=>$r->name,
        'email'=>$r->email,
        'role'=>$r->role,
      ]);


        auth()->guard('adminguard')->user()->logAdmin("Admin Account Update", "Admin Account Update", "Updated an admin: ".$admin->name);

        return redirect()->route('admin.users.index')->with('success','Admin User Updated');
    }

    public function delete($id){

        $user = AdminModel::where('id',$id)->first();
        auth()->guard('adminguard')->user()->logAdmin("Admin Account Delete", "Admin Account Delete", "Deleted an admin: ".$user->name);
        $user->delete();
      return back()->with('success','Admin User Deleted!');
    }
}
