['required', 'string', 'max:50'], 'tag_number' => ['required', 'string', 'exists:tags,tag_number'], 'vin' => ['required', 'string', 'max:30'], 'files' => ['nullable', 'array', 'min:1'], 'files.*' => ['file', 'mimes:jpeg,png,jpg', 'max:10240'], 'names' => ['nullable', 'array'], 'names.*' => ['string', 'max:255'], ]; } 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', 'vin.required' => 'El VIN es requerido', 'vin.string' => 'El VIN debe ser una cadena de texto', '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', ]; } }