repuve-backend-v1/app/Http/Requests/Repuve/VehicleStoreRequest.php

45 lines
1.7 KiB
PHP

<?php namespace App\Http\Requests\Repuve;
use Illuminate\Foundation\Http\FormRequest;
class VehicleStoreRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'folio' => ['required', 'string', 'max:50'],
'tag_number' => ['required', 'string', 'exists:tags,tag_number'],
'placa' => ['required', 'string', 'max:30'],
'telefono' => ['required', 'string', 'max:11'],
'files' => ['nullable', 'array', 'min:1'],
'files.*' => ['file', 'mimes:jpeg,png,jpg', 'max:10240'],
'name_id' => ['required', 'array', 'min:1'],
'name_id.*' => ['required', 'integer', 'exists:catalog_name_img,id']
];
}
public function messages(): array
{
return [
'folio.required' => 'El folio es requerido',
'folio.string' => 'El folio debe ser una cadena de texto',
'tag_number.required' => 'El tag_number es requerido',
'tag_number.exists' => 'El tag_number no existe en el sistema',
'placa.required' => 'La placa es requerida',
'placa.string' => 'La placa debe ser una cadena de texto',
'telefono.required' => 'El teléfono es requerido',
'telefono.max' => 'El teléfono no debe superar los 10 caracteres',
'files.array' => 'Los archivos deben ser un array',
'files.*.file' => 'Cada elemento debe ser un archivo válido',
'files.*.mimes' => 'Los archivos deben ser de tipo: jpeg, png, jpg, pdf',
'files.*.max' => 'Cada archivo no debe superar los 10MB',
];
}
}