inti project
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Http\Requests\Finance;
|
||||
|
||||
use App\Domain\SchoolCore\Finance\DTO\EditPaymentData;
|
||||
use App\Domain\SchoolCore\Finance\DTO\MoneyData;
|
||||
use App\Domain\SchoolCore\Finance\Enums\PaymentMethod;
|
||||
use DateTimeImmutable;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
final class EditPaymentRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool { return true; }
|
||||
public function rules(): array { return ['amount_minor'=>['nullable','integer','min:1'],'currency'=>['required_with:amount_minor','string','size:3'],'payment_method'=>['nullable','string','in:cash,check,card,bank_transfer,other'],'payment_date'=>['nullable','date'],'reference_number'=>['nullable','string'],'notes'=>['nullable','string'],'replacement_file'=>['nullable','file','max:10240'],'edit_reason'=>['required','string']]; }
|
||||
public function toDTO(): EditPaymentData { $v=$this->validated(); return new EditPaymentData(isset($v['amount_minor']) ? new MoneyData((int)$v['amount_minor'], strtoupper($v['currency'])) : null, isset($v['payment_method']) ? PaymentMethod::from($v['payment_method']) : null, isset($v['payment_date']) ? new DateTimeImmutable($v['payment_date']) : null, $v['reference_number'] ?? null, $v['notes'] ?? null, $this->file('replacement_file'), $v['edit_reason']); }
|
||||
}
|
||||
Reference in New Issue
Block a user