. */ declare(strict_types=1); namespace FireflyIII\Rules; use Closure; use Illuminate\Contracts\Validation\ValidationRule; /** * Class ValidRecurrenceRepetitionType * */ class ValidRecurrenceRepetitionType implements ValidationRule { /** * Determine if the validation rule passes. * * @param string $attribute * @param mixed $value * @param Closure $fail */ public function validate(string $attribute, mixed $value, Closure $fail): void { $value = (string)$value; if ('daily' === $value) { return; } //monthly,17 //ndom,3,7 if (in_array(substr($value, 0, 6), ['yearly', 'weekly'], true)) { return; } if (str_starts_with($value, 'monthly')) { return; } if (str_starts_with($value, 'ndom')) { return; } $fail('validation.valid_recurrence_rep_type')->translate(); } }