54 lines
1.7 KiB
PHP
54 lines
1.7 KiB
PHP
<?php namespace App\Http\Requests\App;
|
|
/**
|
|
* @copyright (c) 2025 Notsoweb Software (https://notsoweb.com) - All Rights Reserved
|
|
*/
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
/**
|
|
* Descripción
|
|
*
|
|
* @author Moisés Cortés C. <moises.cortes@notsoweb.com>
|
|
*
|
|
* @version 1.0.0
|
|
*/
|
|
class InvoiceRequestUploadRequest extends FormRequest
|
|
{
|
|
/**
|
|
* Determinar si el usuario está autorizado para realizar esta solicitud
|
|
*/
|
|
public function authorize(): bool
|
|
{
|
|
return true; // Autorización manejada por middleware
|
|
}
|
|
|
|
/**
|
|
* Obtener las reglas de validación que se aplican a la solicitud
|
|
*/
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'invoice_xml' => ['nullable', 'file', 'mimes:xml', 'max:2048'], // Max 2MB
|
|
'invoice_pdf' => ['required', 'file', 'mimes:pdf', 'max:5120'], // Max 5MB
|
|
'cfdi_uuid' => ['required', 'string', 'size:36', 'regex:/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i'],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Mensajes personalizados de validación
|
|
*/
|
|
public function messages(): array
|
|
{
|
|
return [
|
|
'invoice_xml.mimes' => 'El archivo debe ser un XML válido',
|
|
'invoice_xml.max' => 'El archivo XML no puede ser mayor a 2MB',
|
|
'invoice_pdf.required' => 'El archivo PDF de la factura es obligatorio',
|
|
'invoice_pdf.mimes' => 'El archivo debe ser un PDF válido',
|
|
'invoice_pdf.max' => 'El archivo PDF no puede ser mayor a 5MB',
|
|
'cfdi_uuid.required' => 'El UUID del CFDI es obligatorio',
|
|
'cfdi_uuid.size' => 'El UUID del CFDI debe tener 36 caracteres',
|
|
'cfdi_uuid.regex' => 'El formato del UUID del CFDI no es válido',
|
|
];
|
|
}
|
|
}
|