displayNameFieldName = "titles.0.title"; } public static function scrape(int $id) { $data = app('JikanParser')->getProducer(new ProducerRequest($id)); $data = json_decode( app('SerializerV4') ->serialize($data, 'json'), true ); unset($data['results'], $data['has_next_page'], $data['last_visible_page']); return $data; } public function toSearchableArray(): array { return [ 'id' => (string) $this->mal_id, 'mal_id' => (int) $this->mal_id, 'url' => !is_null($this->url) ? $this->url : '', 'titles' => !is_null($this->titles) ? collect($this->titles)->map(fn ($x) => $x["title"])->toArray() : [''], 'established' => $this->convertToTimestamp($this->established), 'favorites' => $this->favorites, 'count' => $this->count ]; } public function typesenseQueryBy(): array { return [ 'url', 'titles' ]; } public function getTitleAttributeName(): string { return 'titles'; } }