. */ declare(strict_types=1); namespace FireflyIII\Http\Requests; use FireflyIII\Models\PiggyBank; use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** * Class PiggyBankFormRequest. */ class PiggyBankUpdateRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; /** * Returns the data required by the controller. */ public function getPiggyBankData(): array { return [ 'name' => $this->convertString('name'), 'startdate' => $this->getCarbonDate('startdate'), 'account_id' => $this->convertInteger('account_id'), 'targetamount' => trim($this->convertString('targetamount')), 'targetdate' => $this->getCarbonDate('targetdate'), 'notes' => $this->stringWithNewlines('notes'), 'object_group_title' => $this->convertString('object_group'), ]; } /** * Rules for this request. */ public function rules(): array { /** @var PiggyBank $piggy */ $piggy = $this->route()->parameter('piggyBank'); return [ 'name' => sprintf('required|between:1,255|uniquePiggyBankForUser:%d', $piggy->id), 'account_id' => 'required|belongsToUser:accounts', 'targetamount' => ['nullable', new IsValidPositiveAmount()], 'startdate' => 'date', 'targetdate' => 'date|nullable', 'order' => 'integer|max:65536|min:1', 'object_group' => 'min:0|max:255', 'notes' => 'between:1,65536|nullable', ]; } }