<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;

class ExportExcelRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'filters' => 'sometimes|array',
            'filters.wilaya' => 'sometimes|integer|exists:wilayas,id',
            'filters.etablissement' => 'sometimes|integer|exists:etablissements,id',
            'filters.pole' => 'sometimes|integer|exists:poles,id',
            'filters.annee' => 'sometimes|integer|exists:annees,id',
            'filters.date_debut' => 'sometimes|date',
            'filters.date_fin' => 'sometimes|date|after_or_equal:date_debut',
        ];
    }

    public function messages()
    {
        return [
            'filters.wilaya.exists' => 'La wilaya sélectionnée n\'existe pas',
            'filters.etablissement.exists' => 'L\'établissement sélectionné n\'existe pas',
            'filters.pole.exists' => 'Le pôle sélectionné n\'existe pas',
            'filters.annee.exists' => 'L\'année sélectionnée n\'existe pas',
            'filters.date_fin.after_or_equal' => 'La date de fin doit être après ou égale à la date de début',
        ];
    }

    protected function failedValidation(Validator $validator)
    {
        throw new \Illuminate\Validation\ValidationException($validator, response()->json([
            'success' => false,
            'message' => 'Erreur de validation',
            'errors' => $validator->errors(),
        ], 422));
    }
}
