54 lines
2.3 KiB
PHP
54 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Repuve;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
class ModuleStoreRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool
|
|
{
|
|
return auth()->user()->can('module.create');
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'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'],
|
|
'colony' => ['required', '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.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',
|
|
'address.max' => 'La dirección no debe superar los 255 caracteres',
|
|
'colony.required' => 'La colonia es requerida',
|
|
'colony.string' => 'La colonia debe ser una cadena de texto',
|
|
'colony.max' => 'La colonia no debe superar los 100 caracteres',
|
|
'cp.string' => 'El código postal debe ser una cadena de 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',
|
|
];
|
|
}
|
|
}
|