<?php

namespace App\PackagesAdmin\Manager\Requests;

use App\Packages\User\Rules\UserEmailRule;
use Illuminate\Foundation\Http\FormRequest;

/**
 * Class ManagerRequest
 * @package App\PackagesAdmin\Manager\Requests
 *
 * @property string $email
 * @property string $first_name
 * @property string $last_name
 * @property int $role_id
 * @property boolean $is_active
 * @property string $password
 * @property string $password_confirmation
 */
class ManagerRequest extends FormRequest {

    /**
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * @return array
     */
    public function rules()
    {
        $rules = [
            'email' => 'required|string|email|max:255|unique:table_manager,email',
            'first_name' => ['string'],
            'last_name' => ['string'],
            'role_id' => ['numeric', 'required'],
            'is_active' => ['integer'],
        ];

        if ( $this->method() == 'PUT' ) {
            $id = $this->route()->parameter('id');

            $rules['email'] .= ','.$id;
            if ($this->filled('password')) $rules['password'] = 'string|min:3|confirmed';
        } else {
            $rules['password'] = 'required|string|min:3|confirmed';
        }

        return $rules;
    }

}