<?php namespace Tests\RequestFactories; use App\Contribution\ContributionFactory; use App\Contribution\Documents\ContributionDocument; use App\Country; use App\Member\Member; use Worksome\RequestFactories\RequestFactory; class ContributionRequestFactory extends RequestFactory { public function definition(): array { $compilers = collect(app(ContributionFactory::class)->compilerSelect())->pluck('class'); return [ 'country' => Country::factory()->create()->id, 'dateFrom' => $this->faker->date(), 'dateUntil' => $this->faker->date(), 'eventName' => $this->faker->words(3, true), 'members' => [Member::factory()->defaults()->create()->id], 'type' => $this->faker->randomElement($compilers), 'zipLocation' => $this->faker->city, ]; } public function toBase64(): string { return base64_encode(rawurlencode(json_encode($this->create()))); } /** * @param class-string<ContributionDocument> $type */ public function type(string $type): self { return $this->state(['type' => $type]); } }