From 75aa7e3aae5a89705c6c3020e5df0709b8bcb4eb Mon Sep 17 00:00:00 2001 From: Timothy J Warren Date: Mon, 9 Dec 2019 13:40:54 -0500 Subject: [PATCH] Annotate property types for Types classes --- src/Types/AbstractType.php | 2 +- src/Types/AnimeListItem.php | 49 +++++++++++++++++++++++++++++ src/Types/AnimePage.php | 7 +++++ src/Types/Character.php | 31 +++++++++++++++++++ src/Types/FormItem.php | 15 +++++++++ src/Types/FormItemData.php | 31 +++++++++++++++++++ src/Types/MangaListItem.php | 39 +++++++++++++++++++++++ src/Types/MangaListItemDetail.php | 31 +++++++++++++++++++ src/Types/MangaPage.php | 51 +++++++++++++++++++++++++++++++ src/Types/Person.php | 15 +++++++++ src/Types/User.php | 35 +++++++++++++++++++++ 11 files changed, 305 insertions(+), 1 deletion(-) diff --git a/src/Types/AbstractType.php b/src/Types/AbstractType.php index f15371a1..1dadc1e4 100644 --- a/src/Types/AbstractType.php +++ b/src/Types/AbstractType.php @@ -25,7 +25,7 @@ abstract class AbstractType implements ArrayAccess, Countable { * Populate values for un-serializing data * * @param $properties - * @return mixed + * @return self */ public static function __set_state($properties): self { diff --git a/src/Types/AnimeListItem.php b/src/Types/AnimeListItem.php index bae8f385..4449ab84 100644 --- a/src/Types/AnimeListItem.php +++ b/src/Types/AnimeListItem.php @@ -20,25 +20,74 @@ namespace Aviat\AnimeClient\Types; * Type representing an anime watch list item */ final class AnimeListItem extends AbstractType { + /** + * @var string + */ public $id; + + /** + * @var string + */ public $mal_id; + + /** + * @var string + */ public $anilist_item_id; + + /** + * @var array + */ public $episodes = [ 'length' => 0, 'total' => 0, 'watched' => '', ]; + + /** + * @var array + */ public $airing = [ 'status' => '', 'started' => '', 'ended' => '', ]; + + /** + * @var Anime + */ public $anime; + + /** + * @var string + */ public $notes = ''; + + /** + * @var bool + */ public $private; + + /** + * @var bool + */ public $rewatching; + + /** + * @var number + */ public $rewatched; + + /** + * @var number + */ public $user_rating; + + /** + * One of Aviat\AnimeClient\API\Enum\AnimeWatchingStatus + * + * @var string + */ public $watching_status; public function setAnime($anime): void diff --git a/src/Types/AnimePage.php b/src/Types/AnimePage.php index 5783146b..771b826c 100644 --- a/src/Types/AnimePage.php +++ b/src/Types/AnimePage.php @@ -20,6 +20,13 @@ namespace Aviat\AnimeClient\Types; * Type representing an Anime object for a detail page */ final class AnimePage extends Anime { + /** + * @var array + */ public $characters; + + /** + * @var array + */ public $staff; } \ No newline at end of file diff --git a/src/Types/Character.php b/src/Types/Character.php index 29fe8f38..906d58cc 100644 --- a/src/Types/Character.php +++ b/src/Types/Character.php @@ -20,13 +20,44 @@ namespace Aviat\AnimeClient\Types; * Type representing a character for display */ final class Character extends AbstractType { + /** + * @var array + */ public $castings; + + /** + * @var string + */ public $description; + + /** + * @var string + */ public $id; + + /** + * @var array + */ public $included; + + /** + * @var array + */ public $media; + + /** + * @var string + */ public $name; + + /** + * @var array + */ public $names; + + /** + * @var array + */ public $otherNames; public function setMedia ($media): void diff --git a/src/Types/FormItem.php b/src/Types/FormItem.php index 1f1b5804..3effb6c3 100644 --- a/src/Types/FormItem.php +++ b/src/Types/FormItem.php @@ -20,9 +20,24 @@ namespace Aviat\AnimeClient\Types; * Type representing an Anime object for display */ class FormItem extends AbstractType { + /** + * @var string + */ public $id; + + /** + * @var string + */ public $anilist_item_id; + + /** + * @var string + */ public $mal_id; + + /** + * @var FormItemData + */ public $data; public function setData($value): void diff --git a/src/Types/FormItemData.php b/src/Types/FormItemData.php index e9302870..7f76f8c4 100644 --- a/src/Types/FormItemData.php +++ b/src/Types/FormItemData.php @@ -20,13 +20,44 @@ namespace Aviat\AnimeClient\Types; * Type representing a Media object for editing/syncing */ class FormItemData extends AbstractType { + /** + * @var string + */ public $notes; + + /** + * @var bool + */ public $private; + + /** + * @var int + */ public $progress; + + /** + * @var int + */ public $rating; + + /** + * @var int + */ public $ratingTwenty; + + /** + * @var int + */ public $reconsumeCount; + + /** + * @var bool + */ public $reconsuming; + + /** + * @var string + */ public $status; public $updatedAt; } diff --git a/src/Types/MangaListItem.php b/src/Types/MangaListItem.php index ad296719..d6b9aac9 100644 --- a/src/Types/MangaListItem.php +++ b/src/Types/MangaListItem.php @@ -20,21 +20,60 @@ namespace Aviat\AnimeClient\Types; * Type representing an Anime object for display */ final class MangaListItem extends AbstractType { + /** + * @var string + */ public $id; + + /** + * @var string + */ public $mal_id; + + /** + * @var array + */ public $chapters = [ 'read' => 0, 'total' => 0, ]; + + /** + * @var array + */ public $volumes = [ 'read' => '-', 'total' => 0, ]; + + /** + * @var object + */ public $manga; + + /** + * @var string + */ public $reading_status; + + /** + * @var string + */ public $notes; + + /** + * @var bool + */ public $rereading; + + /** + * @var int + */ public $reread; + + /** + * @var int + */ public $user_rating; } diff --git a/src/Types/MangaListItemDetail.php b/src/Types/MangaListItemDetail.php index 661714dd..ad321c66 100644 --- a/src/Types/MangaListItemDetail.php +++ b/src/Types/MangaListItemDetail.php @@ -20,12 +20,43 @@ namespace Aviat\AnimeClient\Types; * Type representing the manga represented by the list item */ final class MangaListItemDetail extends AbstractType { + /** + * @var array + */ public $genres; + + /** + * @var string + */ public $id; + + /** + * @var string + */ public $image; + + /** + * @var string + */ public $slug; + + /** + * @var string + */ public $title; + + /** + * @var array + */ public $titles; + + /** + * @var string + */ public $type; + + /** + * @var string + */ public $url; } diff --git a/src/Types/MangaPage.php b/src/Types/MangaPage.php index 6a39cb0b..520a5e12 100644 --- a/src/Types/MangaPage.php +++ b/src/Types/MangaPage.php @@ -20,17 +20,68 @@ namespace Aviat\AnimeClient\Types; * Type representing an Anime object for display */ final class MangaPage extends AbstractType { + /** + * @var array + */ public $characters; + + /** + * @var int + */ public $chapter_count; + + /** + * @var string + */ public $cover_image; + + /** + * @var array + */ public $genres; + + /** + * @var string + */ public $id; + + /** + * @var array + */ public $included; + + /** + * @var string + */ public $manga_type; + + /** + * @var array + */ public $staff; + + /** + * @var string + */ public $synopsis; + + /** + * @var string + */ public $title; + + /** + * @var array + */ public $titles; + + /** + * @var string + */ public $url; + + /** + * @var int + */ public $volume_count; } diff --git a/src/Types/Person.php b/src/Types/Person.php index f64d6abb..71984222 100644 --- a/src/Types/Person.php +++ b/src/Types/Person.php @@ -20,9 +20,24 @@ namespace Aviat\AnimeClient\Types; * Type representing a person for display */ final class Person extends AbstractType { + /** + * @var string + */ public $id; + + /** + * @var string + */ public $name; + + /** + * @var object + */ public $characters; + + /** + * @var array + */ public $staff; public function setCharacters($characters): void diff --git a/src/Types/User.php b/src/Types/User.php index 14fc4fbc..f6995bc2 100644 --- a/src/Types/User.php +++ b/src/Types/User.php @@ -20,13 +20,48 @@ namespace Aviat\AnimeClient\Types; * Type representing a Kitsu user for display */ final class User extends AbstractType { + /** + * @var string + */ public $about; + + /** + * @var string + */ public $avatar; + + /** + * @var array + */ public $favorites; + + /** + * @var string + */ public $location; + + /** + * @var string + */ public $name; + + /** + * @var string + */ public $slug; + + /** + * @var array + */ public $stats; + + /** + * @var array + */ public $waifu; + + /** + * @var string + */ public $website; } \ No newline at end of file