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

81 lines
2.2 KiB
PHP
Raw Normal View History

2022-01-02 13:03:40 +01:00
<?php
namespace App\Http\Requests\Bo;
2022-01-02 13:03:40 +01:00
use App\Enums\Planning\ActivityTypeEnum;
use App\Enums\Planning\CellModelEnum;
use App\Enums\Planning\TableRowEnum;
2022-01-02 13:03:40 +01:00
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rules\Enum;
2022-01-02 13:03:40 +01:00
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',
new Enum(ActivityTypeEnum::class),
2022-08-30 06:41:39 +00:00
function ($attribute, $value, $fail) {
if (
\in_array($value, [
ActivityTypeEnum::dev->name(),
ActivityTypeEnum::projects->name(),
2022-08-30 06:41:39 +00:00
]) 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 Enum(TableRowEnum::class)
2022-01-02 13:03:40 +01:00
],
'model_lie' => [
'nullable',
new Enum(CellModelEnum::class),
2022-01-02 13:03:40 +01:00
],
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 [
2022-08-30 13:21:07 +00:00
'user_id' => \trans('utilisateur'),
'activity' => \trans('type d\'activitée'),
'model_lie' => \trans('type d\'élément lié'),
'id_lie' => \trans('élément lié'),
'slot' => \trans('ligne de la journée'),
2022-08-30 06:41:39 +00:00
];
}
2022-01-02 13:03:40 +01:00
}