test-yield/app/Http/Requests/SendMoneyRequest.php

47 lines
1019 B
PHP

<?php
declare(strict_types=1);
namespace App\Http\Requests;
use App\Http\Requests\Traits\HasAmountTraitRequest;
use App\Models\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class SendMoneyRequest extends FormRequest
{
use HasAmountTraitRequest;
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'recipient_email' => [
'required',
'email',
Rule::exists(User::class, 'email')->whereNot('id', $this->user()->id),
],
'amount' => [
'required',
'numeric',
'min:0.01',
],
'reason' => [
'required',
'string',
'max:255',
],
];
}
public function getRecipient(): User
{
return User::where('email', '=', $this->input('recipient_email'))->firstOrFail();
}
}