repuve-backend-v1/app/Http/Requests/Repuve/ModuleStoreRequest.php

49 lines
1.8 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('modules.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'],
'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',
'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',
];
}
}