fix: agregar validación única para el nombre del módulo y mensajes de error en las solicitudes de módulo

This commit is contained in:
Juan Felipe Zapata Moreno 2026-02-17 14:41:34 -06:00
parent de9d801d50
commit f04dbccedb
3 changed files with 8 additions and 3 deletions

View File

@ -3,6 +3,7 @@
namespace App\Http\Requests\Repuve;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class ModuleStoreRequest extends FormRequest
{
@ -14,7 +15,7 @@ public function authorize(): bool
public function rules(): array
{
return [
'name' => ['required', 'string', 'max:255'],
'name' => ['required', 'string', 'max:255', Rule::unique('modules', 'name')],
'responsible_id' => ['required', 'exists:users,id'],
'municipality_id' => 'required|exists:municipalities,id',
'address' => ['required', 'string', 'max:255'],
@ -32,6 +33,7 @@ public function messages(): array
'name.required' => 'El nombre del módulo es requerido',
'name.string' => 'El nombre debe ser una cadena de texto',
'name.max' => 'El nombre no debe superar los 255 caracteres',
'name.unique' => 'Ya existe un módulo con ese nombre.',
'municipality_id.required' => 'El municipio es requerido',
'address.required' => 'La dirección es requerida',
'address.string' => 'La dirección debe ser una cadena de texto',

View File

@ -3,6 +3,7 @@
namespace App\Http\Requests\Repuve;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class ModuleUpdateRequest extends FormRequest
{
@ -14,7 +15,7 @@ public function authorize(): bool
public function rules(): array
{
return [
'name' => ['nullable', 'string', 'max:50'],
'name' => ['nullable', 'string', 'max:50', Rule::unique('modules', 'name')->ignore($this->route('module'))],
'municipality_id' => ['nullable', 'integer', 'exists:municipalities,id'],
'responsible_id' => ['nullable', 'integer', 'exists:users,id'],
'address' => ['nullable', 'string', 'max:50'],
@ -30,6 +31,7 @@ public function messages(): array
{
return [
'name.string' => 'El nombre debe ser texto',
'name.unique' => 'Ya existe un módulo con ese nombre.',
'name.max' => 'El nombre no debe superar los 50 caracteres',
'municipality_id.integer' => 'El municipio debe ser un número entero',
'municipality_id.exists' => 'El municipio seleccionado no existe',

View File

@ -156,6 +156,7 @@
'maternal' => 'apellido materno',
'email' => 'correo',
'phone' => 'teléfono',
'responsible_id' => 'responsable',
'box_number' => 'número de caja',
'lot' => 'lote',
'starting_page' => 'página inicial',