39 lines
1.2 KiB
PHP
39 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
class EmployeeRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
$employeeId = $this->route('id');
|
|
|
|
$rules = [
|
|
'firstname' => 'required|string|max:255',
|
|
'lastname' => 'required|string|max:255',
|
|
'username' => ['required', 'string', 'max:255', Rule::unique('user', 'username')->ignore($employeeId)],
|
|
'email' => ['required', 'email', 'max:255', Rule::unique('user', 'email')->ignore($employeeId)],
|
|
'role' => ['required', Rule::in(['Administrator', 'Sale', 'IT', 'Customer Service', 'Marketing'])],
|
|
'phone' => 'nullable|string|max:20',
|
|
'birthday' => 'nullable|date',
|
|
'address' => 'nullable|string|max:500',
|
|
];
|
|
|
|
if ($this->isMethod('POST')) {
|
|
$rules['password'] = 'required|string|min:8|confirmed';
|
|
} else {
|
|
$rules['password'] = 'nullable|string|min:8|confirmed';
|
|
}
|
|
|
|
return $rules;
|
|
}
|
|
}
|