repuve-backend-v1/app/Http/Requests/Repuve/CancelConstanciaRequest.php
Juan Felipe Zapata Moreno 31746867b8 feat: Agrega validaciones de autorización y nuevas clases Request
- Se agregó autorización basada en permisos en múltiples Requests.
- Nuevos Requests para motivos de cancelación y tags con validación y autorización.
- Se añadieron métodos de roles al modelo User (isDeveloper, isAdmin, isPrimary).
- Se actualizó el acceso a Telescope usando validación por roles.
- Mejora en el manejo de excepciones de autorización.
- Actualización de RoleSeeder con nuevas convenciones de permisos.
- Actualización de dependencias (composer.lock).
2026-02-23 13:05:53 -06:00

58 lines
1.6 KiB
PHP

<?php
namespace App\Http\Requests\Repuve;
use Illuminate\Foundation\Http\FormRequest;
class CancelConstanciaRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return auth()->user()->hasPermissionTo('cancellations.cancel_constancia');
}
/**
* Get the validation rules that apply to the request.
*/
public function rules(): array
{
return [
'new_folio' => 'required|string',
'cancellation_reason_id' => 'required|exists:catalog_cancellation_reasons,id',
'cancellation_observations' => 'nullable|string',
'new_tag_number' => 'nullable|exists:tags,tag_number',
];
}
/**
* Get custom messages for validator errors.
*/
public function messages(): array
{
return [
'record_id.exists' => 'El expediente especificado no existe.',
'cancellation_reason_id.required' => 'El motivo de cancelación es obligatorio.',
'cancellation_reason_id.exists' => 'El motivo de cancelación no es válido.',
'new_tag_number.exists' => 'El nuevo tag no existe',
'folio.required_with' => 'El folio es requerido cuando se proporciona un nuevo tag',
];
}
/**
* Get custom attributes for validator errors.
*/
public function attributes(): array
{
return [
'record_id' => 'id del expediente',
'cancellation_reason' => 'motivo de cancelación',
'cancellation_observations' => 'observaciones',
];
}
}