for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Siak\Tontine\Validation\Meeting;
use Illuminate\Support\Facades\Validator;
use Siak\Tontine\Service\LocaleService;
use Siak\Tontine\Validation\AbstractValidator;
use Siak\Tontine\Validation\Traits\ValidationTrait;
use Siak\Tontine\Validation\ValidationException;
class TargetValidator extends AbstractValidator
{
use ValidationTrait;
/**
* @param LocaleService $localeService
*/
public function __construct(private LocaleService $localeService)
{}
* @return array<string>
protected function amountFields(): array
return ['amount'];
}
* Validate settlement target data
*
* @param array $values
* @return array
public function validateItem(array $values): array
$validator = Validator::make($this->values($values), [
'global' => 'required|boolean',
'amount' => $this->amountRule(),
'deadline' => 'required|integer|min:1',
]);
if($validator->fails())
throw new ValidationException($validator);
$validated = $validator->validated();
$validated['amount'] = $this->localeService->convertMoneyToInt((float)$validated['amount']);
return $validated;