> $members */ public function __construct( public string $dateFrom, public string $dateUntil, public string $zipLocation, public ?Country $country, public Collection $members, public ?string $filename = '', public string $type = 'F', public string $eventName = '', ) { $this->setEventName($eventName); } public static function fromPayload(HasContributionData $request): self { return new self( dateFrom: $request->dateFrom(), dateUntil: $request->dateUntil(), zipLocation: $request->zipLocation(), country: $request->country(), members: $request->members()->chunk(17), eventName: $request->eventName(), ); } public function countryName(): string { return $this->country->name; } public static function getName(): string { return 'RdP NRW'; } /** * @return array */ public static function rules(): array { return [ 'dateFrom' => 'required|string|date_format:Y-m-d', 'dateUntil' => 'required|string|date_format:Y-m-d', 'country' => 'required|integer|exists:countries,id', 'zipLocation' => 'required|string', ]; } }