17 lines
831 B
PHP
17 lines
831 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Requests\Finance;
|
|
|
|
use App\Domain\SchoolCore\Finance\DTO\MoneyData;
|
|
use App\Domain\SchoolCore\Finance\DTO\RefundPaymentData;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
final class RefundPaymentRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool { return true; }
|
|
public function rules(): array { return ['payment_id'=>['required','integer','min:1'],'amount_minor'=>['required','integer','min:1'],'currency'=>['required','string','size:3'],'reason'=>['required','string'],'idempotency_key'=>['nullable','string']]; }
|
|
public function toDTO(): RefundPaymentData { $v=$this->validated(); return new RefundPaymentData((int)$v['payment_id'], new MoneyData((int)$v['amount_minor'], strtoupper($v['currency'])), $v['reason'], $v['idempotency_key'] ?? null); }
|
|
}
|