displayNameFieldName = "name"; } /** @noinspection PhpUnused */ public function getFavoritesAttribute() { return $this->attributes['member_favorites']; } /** @noinspection PhpUnused */ public function getImagesAttribute() { return $this->attributes['images']; } public static function scrape(int $id) { $data = app('JikanParser')->getPerson(new PersonRequest($id)); return json_decode( app('SerializerV4') ->serialize($data, 'json'), true ); } /** * Converts the model to an index-able data array. * * @return array */ public function toSearchableArray(): array { return [ 'id' => (string) $this->mal_id, 'mal_id' => (int) $this->mal_id, 'name' => $this->name, 'given_name' => $this->given_name, 'family_name' => $this->family_name, 'alternate_names' => $this->alternate_names, 'member_favorites' => $this->member_favorites, 'birthday' => $this->convertToTimestamp($this->birthday) ]; } public function typesenseQueryBy(): array { return [ "name", "given_name", "family_name", "alternate_names" ]; } public function getTitleAttributeName(): string { return 'name'; } }