File: /var/www/matriculas_api_dev/app/Http/Requests/Period/StorePeriodRequest.php
<?php
namespace App\Http\Requests\Period;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;
class StorePeriodRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'period_year' => 'required|integer|min:2000|max:2100',
'period' => 'required|min:3|max:150',
'start_date' => 'required|date',
'end_date' => 'required|date|after_or_equal:start_date',
'segments' => 'array',
'segments.*.description' => 'required|string|max:150',
'segments.*.start_date' => 'required|date',
'segments.*.end_date' => 'required|date|after_or_equal:segments.*.start_date',
];
}
public function messages()
{
return [
'period_year.required' => 'Año del periodo requerido',
'period.required' => 'Nombre del periodo requerido',
'start_date.required' => 'Fecha de inicio requerida',
'end_date.required' => 'Fecha de término requerida',
'end_date.after_or_equal' => 'Fecha término debe ser mayor o igual a inicio',
'segments.*.description.required' => 'Cada segmento requiere una descripción',
'segments.*.start_date.required' => 'Cada segmento requiere fecha de inicio',
'segments.*.end_date.required' => 'Cada segmento requiere fecha de fin',
];
}
protected function failedValidation(Validator $validator)
{
throw new HttpResponseException(
genericResponse(['error' => implode(', ', $validator->errors()->all())], 400)
);
}
}