pdv.backend/app/Http/Requests/App/InvoiceRequestUploadRequest.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',
];
}
}