<?php
/**
 * Created by PhpStorm.
 * User: stana
 * Date: 06.04.2017
 * Time: 16:10
 */

namespace App\Http\Controllers;


use App\User;
use Auth;
use Illuminate\Http\Request;
use Validator;

class AccoAdminsController
{
    public function showList(){
        $accommodation_id = User::where('user_id','=',Auth::user()->user_id)->pluck('accommodation_id')->first();

        if($accommodation_id == null){
            flash('Nemáte vytvořeno ubytování. Bez něj nemůžete spravovat správce!','danger');
            return redirect('home');
        }

        $users = User::where('accommodation_id','=', $accommodation_id)->get();
        return view('acco_admin_list', ['users' => $users]);
    }

    public function showAddAccoAdmin(){
        return view('add_acco_admin');
    }

    public function addAccoAdmin(Request $request){
        $messages = [
            'email.required' => 'Zadejte nový e-mail',
            'email.max' => 'E-mail je příliš dlouhý',
            'email.min' => 'E-mail je příliš krátký',
            'email.email' => 'Zadejte e-mail ve správném formátu',
        ];

        $validator = Validator::make($request->all(), [
            'email' => 'required|email|max:255|min:5',
        ], $messages);

        $user = User::where('email','=',$request->email)->first();

        if ($validator->fails()) {
            return redirect('change_email')->withErrors($validator)->withInput();
        }elseif($user == null){
            flash('Daný e-mail neexistuje v systému','danger');
            return redirect('add_acco_admin');
        }elseif($user->accommodation_id != null){
            flash('Uživatel již je přirazen k některému ubytování','danger');
            return redirect('add_acco_admin');
        }

        $accommodation_id = User::where('user_id','=',Auth::user()->user_id)->pluck('accommodation_id')->first();
        $user->accommodation_id = $accommodation_id;
        $user->save();

        flash('Nový správce úspěšně přidán','success');
        return redirect('acco_admin_list');
    }

    public function deleteAccoAdmin(Request $request){
        $user = User::find($request->user_id);
        $user->accommodation_id = null;
        $user->save();

        flash('Uživateli byl odepřen přístup k administraci ubytování', 'success');
        return redirect('acco_admin_list');
    }
}