2026-05-11 13:30:24 +03:00

49 lines
2.0 KiB
PHP

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class StoreLeaveRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'employee_id' => 'required|exists:employees,id',
'type' => ['required', Rule::in(['conge', 'repos', 'feriee'])],
'status' => ['nullable', Rule::in(['pending', 'approved', 'rejected', 'cancelled'])],
'start_date' => 'required|date',
'end_date' => 'required|date|after_or_equal:start_date',
'reason' => 'nullable|string',
'notes' => 'nullable|string',
'approved_by' => 'nullable|exists:users,id',
'approved_at' => 'nullable|date',
];
}
public function messages(): array
{
return [
'employee_id.required' => 'L\'employé est obligatoire.',
'employee_id.exists' => 'L\'employé sélectionné est invalide.',
'type.required' => 'Le type de congé est obligatoire.',
'type.in' => 'Le type de congé est invalide.',
'status.in' => 'Le statut du congé est invalide.',
'start_date.required' => 'La date de début est obligatoire.',
'start_date.date' => 'La date de début doit être une date valide.',
'end_date.required' => 'La date de fin est obligatoire.',
'end_date.date' => 'La date de fin doit être une date valide.',
'end_date.after_or_equal' => 'La date de fin doit être postérieure ou égale à la date de début.',
'reason.string' => 'Le motif doit être une chaîne de caractères.',
'notes.string' => 'Les notes doivent être une chaîne de caractères.',
'approved_by.exists' => 'L\'approbateur sélectionné est invalide.',
'approved_at.date' => 'La date d\'approbation doit être une date valide.',
];
}
}