ldc-supportweb/app/Http/Requests/StoreScheduleRequest.php

79 lines
2.1 KiB
PHP
Raw Permalink Normal View History

2022-01-02 13:03:40 +01:00
<?php
namespace App\Http\Requests;
use App\Enums\Planning\ActivityType;
use App\Enums\Planning\CellModel;
use App\Enums\Planning\TableRow;
use Illuminate\Foundation\Http\FormRequest;
use Kwaadpepper\Enum\Rules\EnumIsValidRule;
class StoreScheduleRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
2022-03-29 16:57:54 +02:00
* @return boolean
2022-01-02 13:03:40 +01:00
*/
public function authorize()
{
return auth()->check() and $this->ajax();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'user_id' => 'required|exists:users,id',
2022-01-03 12:53:21 +01:00
'date' => 'date_format:d/m/Y',
2022-01-02 13:03:40 +01:00
'activity' => [
'required',
2022-08-30 06:41:39 +00:00
new EnumIsValidRule(ActivityType::class),
function ($attribute, $value, $fail) {
if (
\in_array($value, [
\strval(ActivityType::dev()->value),
\strval(ActivityType::projects()->value),
]) and
is_null($this->id_lie)
) {
$fail(trans("$attribute : Il est obligatoire d'assigner un type d'élement lié au ticket"));
}
}
2022-01-02 13:03:40 +01:00
],
'slot' => [
'required',
new EnumIsValidRule(TableRow::class)
],
'model_lie' => [
'nullable',
new EnumIsValidRule(CellModel::class)
],
2022-08-30 06:41:39 +00:00
'id_lie' => [
'required_with:model_lie',
'nullable',
'numeric',
],
'description' => 'required|string|min:3|max:90'
2022-01-02 13:03:40 +01:00
];
}
2022-08-30 06:41:39 +00:00
/**
* Get custom attributes for validator errors.
*
* @return array
*/
public function attributes(): array
{
return [
'activity' => trans('catégorie'),
'model_lie' => trans('type d\'élement lié'),
'id_lie' => trans('élement lié')
];
}
2022-01-02 13:03:40 +01:00
}