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

View File

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

View File

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