* * @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', ]; } }