<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class RHInformativoRequest extends FormRequest {

    public function authorize(): bool {
        return true;
    }

    public function rules(): array {
        return [
            "tipo" => 'required|string|max:255',
            'dataPublicacao' => 'required|date',
            "numero" => 'nullable|string|max:255',
            "descricao" => 'required|string|max:5000',
            'arquivo' => 'required|file|max:102400|mimes:pdf|mimetypes:application/pdf',
            "status" => 'required|in:ATIVADO,DESATIVADO',
        ];
    }

    public function messages(): array {
        return [
            'tipo.required' => 'O tipo é obrigatório.',
            'tipo.string' => 'O tipo deve ser um texto válido.',
            'tipo.max' => 'O tipo não pode ultrapassar 255 caracteres.',
            'dataPublicacao.required' => 'A data de publicação é obrigatória.',
            'dataPublicacao.date' => 'A data de publicação deve ser uma data válida.',
            'numero.string' => 'O número deve ser um texto válido.',
            'numero.max' => 'O número não pode ultrapassar 255 caracteres.',
            'descricao.required' => 'Por favor, faça uma breve descrição sobre este processo.',
            'descricao.string' => 'A descrição deve ser um texto válido.',
            'descricao.max' => 'A descrição não pode ultrapassar 5000 caracteres.',
            'arquivo.required' => 'O arquivo PDF é obrigatório.',
            'arquivo.file' => 'O arquivo deve ser um upload válido.',
            'arquivo.max' => 'O arquivo não pode ultrapassar 100 MB.',
            'arquivo.mimes' => 'O arquivo deve estar no formato PDF.',
            'arquivo.mimetypes' => 'O arquivo deve estar no formato PDF.',
            'status.required' => 'O status do arquivo é obrigatório.',
            'status.in' => 'O status do arquivo deve ser ATIVADO ou DESATIVADO.',
        ];
    }
}
