Files
SGF/app/Requests/Sgc/StoreInvoiceRequest.php
T
2026-11-11 09:00:17 +02:00

44 lines
1.5 KiB
PHP

<?php
namespace App\Http\Requests\Sgc;
use Illuminate\Foundation\Http\FormRequest;
class StoreInvoiceRequest extends FormRequest
{
public function authorize(): bool
{
return true; // Em produção, verificar token/API key
}
public function rules(): array
{
return [
'metadata.event_type' => 'required|in:INVOICE_CREATED',
'metadata.timestamp' => 'required|date',
'sgf_doc_number' => 'required|string|max:40',
'sgf_invoice_id' => 'required|integer',
'oc_reference' => 'required|string|max:50',
'supplier.sgf_supplier_id' => 'required|string|max:40',
'supplier.nuit' => 'required|string|max:20',
'supplier.name' => 'required|string|max:200',
'amounts.subtotal' => 'required|numeric|min:0',
'amounts.iva_amount' => 'required|numeric|min:0',
'amounts.total' => 'required|numeric|min:0',
'amounts.currency' => 'required|string|size:3',
'amounts.exchange_rate' => 'required|numeric|min:0',
'dates.invoice_date' => 'required|date',
'dates.due_date' => 'required|date|after_or_equal:dates.invoice_date',
];
}
public function messages(): array
{
return [
'sgf_doc_number.required' => 'Número do documento SGF é obrigatório',
'oc_reference.required' => 'Referência da OC é obrigatória',
'amounts.subtotal.min' => 'Valor subtotal deve ser positivo',
];
}
}