user()->can('modules.edit'); } public function rules(): array { return [ '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'], 'colony' => ['nullable', 'string', 'max:100'], 'cp' => ['nullable', 'string', 'max:10'], 'longitude' => ['nullable', 'numeric', 'between:-180,180'], 'latitude' => ['nullable', 'numeric', 'between:-90,90'], 'status' => ['nullable', 'boolean'], ]; } 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', 'responsible_id.integer' => 'El responsable debe ser un número entero', 'responsible_id.exists' => 'El responsable seleccionado no existe', 'address.string' => 'La dirección debe ser texto', 'address.max' => 'La dirección no debe superar los 50 caracteres', 'colony.string' => 'La colonia debe ser texto', 'colony.max' => 'La colonia no debe superar los 100 caracteres', 'cp.string' => 'El código postal debe ser texto', 'cp.max' => 'El código postal no debe superar los 10 caracteres', 'longitude.numeric' => 'La longitud debe ser un número', 'longitude.between' => 'La longitud debe estar entre -180 y 180', 'latitude.numeric' => 'La latitud debe ser un número', 'latitude.between' => 'La latitud debe estar entre -90 y 90', 'status.boolean' => 'El status debe ser un valor booleano', ]; } }