// Code generated by github.com/99designs/gqlgen, DO NOT EDIT. package anilist import ( "fmt" "io" "strconv" ) // Activity union type type ActivityUnion interface { IsActivityUnion() } // Likeable union type type LikeableUnion interface { IsLikeableUnion() } // Notification union type type NotificationUnion interface { IsNotificationUnion() } // Notification for when a activity is liked type ActivityLikeNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who liked to the activity UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the activity which was liked ActivityID int `json:"activityId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The liked activity Activity ActivityUnion `json:"activity,omitempty"` // The user who liked the activity User *User `json:"user,omitempty"` } func (ActivityLikeNotification) IsNotificationUnion() {} // Notification for when authenticated user is @ mentioned in activity or reply type ActivityMentionNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who mentioned the authenticated user UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the activity where mentioned ActivityID int `json:"activityId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The liked activity Activity ActivityUnion `json:"activity,omitempty"` // The user who mentioned the authenticated user User *User `json:"user,omitempty"` } func (ActivityMentionNotification) IsNotificationUnion() {} // Notification for when a user is send an activity message type ActivityMessageNotification struct { // The id of the Notification ID int `json:"id"` // The if of the user who send the message UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the activity message ActivityID int `json:"activityId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The message activity Message *MessageActivity `json:"message,omitempty"` // The user who sent the message User *User `json:"user,omitempty"` } func (ActivityMessageNotification) IsNotificationUnion() {} // Replay to an activity item type ActivityReply struct { // The id of the reply ID int `json:"id"` // The id of the replies creator UserID *int `json:"userId,omitempty"` // The id of the parent activity ActivityID *int `json:"activityId,omitempty"` // The reply text Text *string `json:"text,omitempty"` // The amount of likes the reply has LikeCount int `json:"likeCount"` // If the currently authenticated user liked the reply IsLiked *bool `json:"isLiked,omitempty"` // The time the reply was created at CreatedAt int `json:"createdAt"` // The user who created reply User *User `json:"user,omitempty"` // The users who liked the reply Likes []*User `json:"likes,omitempty"` } func (ActivityReply) IsLikeableUnion() {} // Notification for when a activity reply is liked type ActivityReplyLikeNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who liked to the activity reply UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the activity where the reply which was liked ActivityID int `json:"activityId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The liked activity Activity ActivityUnion `json:"activity,omitempty"` // The user who liked the activity reply User *User `json:"user,omitempty"` } func (ActivityReplyLikeNotification) IsNotificationUnion() {} // Notification for when a user replies to the authenticated users activity type ActivityReplyNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who replied to the activity UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the activity which was replied too ActivityID int `json:"activityId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The liked activity Activity ActivityUnion `json:"activity,omitempty"` // The user who replied to the activity User *User `json:"user,omitempty"` } func (ActivityReplyNotification) IsNotificationUnion() {} // Notification for when a user replies to activity the authenticated user has replied to type ActivityReplySubscribedNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who replied to the activity UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the activity which was replied too ActivityID int `json:"activityId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The liked activity Activity ActivityUnion `json:"activity,omitempty"` // The user who replied to the activity User *User `json:"user,omitempty"` } func (ActivityReplySubscribedNotification) IsNotificationUnion() {} // Notification for when an episode of anime airs type AiringNotification struct { // The id of the Notification ID int `json:"id"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the aired anime AnimeID int `json:"animeId"` // The episode number that just aired Episode int `json:"episode"` // The notification context text Contexts []*string `json:"contexts,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The associated media of the airing schedule Media *Media `json:"media,omitempty"` } func (AiringNotification) IsNotificationUnion() {} // Score & Watcher stats for airing anime by episode and mid-week type AiringProgression struct { // The episode the stats were recorded at. .5 is the mid point between 2 episodes airing dates. Episode *float64 `json:"episode,omitempty"` // The average score for the media Score *float64 `json:"score,omitempty"` // The amount of users watching the anime Watching *int `json:"watching,omitempty"` } // Media Airing Schedule. NOTE: We only aim to guarantee that FUTURE airing data is present and accurate. type AiringSchedule struct { // The id of the airing schedule item ID int `json:"id"` // The time the episode airs at AiringAt int `json:"airingAt"` // Seconds until episode starts airing TimeUntilAiring int `json:"timeUntilAiring"` // The airing episode number Episode int `json:"episode"` // The associate media id of the airing episode MediaID int `json:"mediaId"` // The associate media of the airing episode Media *Media `json:"media,omitempty"` } type AiringScheduleConnection struct { Edges []*AiringScheduleEdge `json:"edges,omitempty"` Nodes []*AiringSchedule `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // AiringSchedule connection edge type AiringScheduleEdge struct { Node *AiringSchedule `json:"node,omitempty"` // The id of the connection ID *int `json:"id,omitempty"` } type AiringScheduleInput struct { AiringAt *int `json:"airingAt,omitempty"` Episode *int `json:"episode,omitempty"` TimeUntilAiring *int `json:"timeUntilAiring,omitempty"` } type AniChartHighlightInput struct { MediaID *int `json:"mediaId,omitempty"` Highlight *string `json:"highlight,omitempty"` } type AniChartUser struct { User *User `json:"user,omitempty"` Settings *string `json:"settings,omitempty"` Highlights *string `json:"highlights,omitempty"` } // A character that features in an anime or manga type Character struct { // The id of the character ID int `json:"id"` // The names of the character Name *CharacterName `json:"name,omitempty"` // Character images Image *CharacterImage `json:"image,omitempty"` // A general description of the character Description *string `json:"description,omitempty"` // The character's gender. Usually Male, Female, or Non-binary but can be any string. Gender *string `json:"gender,omitempty"` // The character's birth date DateOfBirth *FuzzyDate `json:"dateOfBirth,omitempty"` // The character's age. Note this is a string, not an int, it may contain further text and additional ages. Age *string `json:"age,omitempty"` // The characters blood type BloodType *string `json:"bloodType,omitempty"` // If the character is marked as favourite by the currently authenticated user IsFavourite bool `json:"isFavourite"` // If the character is blocked from being added to favourites IsFavouriteBlocked bool `json:"isFavouriteBlocked"` // The url for the character page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // Media that includes the character Media *MediaConnection `json:"media,omitempty"` UpdatedAt *int `json:"updatedAt,omitempty"` // The amount of user's who have favourited the character Favourites *int `json:"favourites,omitempty"` // Notes for site moderators ModNotes *string `json:"modNotes,omitempty"` } type CharacterConnection struct { Edges []*CharacterEdge `json:"edges,omitempty"` Nodes []*Character `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // Character connection edge type CharacterEdge struct { Node *Character `json:"node,omitempty"` // The id of the connection ID *int `json:"id,omitempty"` // The characters role in the media Role *CharacterRole `json:"role,omitempty"` // Media specific character name Name *string `json:"name,omitempty"` // The voice actors of the character VoiceActors []*Staff `json:"voiceActors,omitempty"` // The voice actors of the character with role date VoiceActorRoles []*StaffRoleType `json:"voiceActorRoles,omitempty"` // The media the character is in Media []*Media `json:"media,omitempty"` // The order the character should be displayed from the users favourites FavouriteOrder *int `json:"favouriteOrder,omitempty"` } type CharacterImage struct { // The character's image of media at its largest size Large *string `json:"large,omitempty"` // The character's image of media at medium size Medium *string `json:"medium,omitempty"` } // The names of the character type CharacterName struct { // The character's given name First *string `json:"first,omitempty"` // The character's middle name Middle *string `json:"middle,omitempty"` // The character's surname Last *string `json:"last,omitempty"` // The character's first and last name Full *string `json:"full,omitempty"` // The character's full name in their native language Native *string `json:"native,omitempty"` // Other names the character might be referred to as Alternative []*string `json:"alternative,omitempty"` // Other names the character might be referred to as but are spoilers AlternativeSpoiler []*string `json:"alternativeSpoiler,omitempty"` // The currently authenticated users preferred name language. Default romaji for non-authenticated UserPreferred *string `json:"userPreferred,omitempty"` } // The names of the character type CharacterNameInput struct { // The character's given name First *string `json:"first,omitempty"` // The character's middle name Middle *string `json:"middle,omitempty"` // The character's surname Last *string `json:"last,omitempty"` // The character's full name in their native language Native *string `json:"native,omitempty"` // Other names the character might be referred by Alternative []*string `json:"alternative,omitempty"` // Other names the character might be referred to as but are spoilers AlternativeSpoiler []*string `json:"alternativeSpoiler,omitempty"` } // A submission for a character that features in an anime or manga type CharacterSubmission struct { // The id of the submission ID int `json:"id"` // Character that the submission is referencing Character *Character `json:"character,omitempty"` // The character submission changes Submission *Character `json:"submission,omitempty"` // Submitter for the submission Submitter *User `json:"submitter,omitempty"` // Data Mod assigned to handle the submission Assignee *User `json:"assignee,omitempty"` // Status of the submission Status *SubmissionStatus `json:"status,omitempty"` // Inner details of submission status Notes *string `json:"notes,omitempty"` Source *string `json:"source,omitempty"` // Whether the submission is locked Locked *bool `json:"locked,omitempty"` CreatedAt *int `json:"createdAt,omitempty"` } type CharacterSubmissionConnection struct { Edges []*CharacterSubmissionEdge `json:"edges,omitempty"` Nodes []*CharacterSubmission `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // CharacterSubmission connection edge type CharacterSubmissionEdge struct { Node *CharacterSubmission `json:"node,omitempty"` // The characters role in the media Role *CharacterRole `json:"role,omitempty"` // The voice actors of the character VoiceActors []*Staff `json:"voiceActors,omitempty"` // The submitted voice actors of the character SubmittedVoiceActors []*StaffSubmission `json:"submittedVoiceActors,omitempty"` } // Deleted data type type Deleted struct { // If an item has been successfully deleted Deleted *bool `json:"deleted,omitempty"` } // User's favourite anime, manga, characters, staff & studios type Favourites struct { // Favourite anime Anime *MediaConnection `json:"anime,omitempty"` // Favourite manga Manga *MediaConnection `json:"manga,omitempty"` // Favourite characters Characters *CharacterConnection `json:"characters,omitempty"` // Favourite staff Staff *StaffConnection `json:"staff,omitempty"` // Favourite studios Studios *StudioConnection `json:"studios,omitempty"` } // Notification for when the authenticated user is followed by another user type FollowingNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who followed the authenticated user UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The liked activity User *User `json:"user,omitempty"` } func (FollowingNotification) IsNotificationUnion() {} // User's format statistics type FormatStats struct { Format *MediaFormat `json:"format,omitempty"` Amount *int `json:"amount,omitempty"` } // Date object that allows for incomplete date values (fuzzy) type FuzzyDate struct { // Numeric Year (2017) Year *int `json:"year,omitempty"` // Numeric Month (3) Month *int `json:"month,omitempty"` // Numeric Day (24) Day *int `json:"day,omitempty"` } // Date object that allows for incomplete date values (fuzzy) type FuzzyDateInput struct { // Numeric Year (2017) Year *int `json:"year,omitempty"` // Numeric Month (3) Month *int `json:"month,omitempty"` // Numeric Day (24) Day *int `json:"day,omitempty"` } // User's genre statistics type GenreStats struct { Genre *string `json:"genre,omitempty"` Amount *int `json:"amount,omitempty"` MeanScore *int `json:"meanScore,omitempty"` // The amount of time in minutes the genre has been watched by the user TimeWatched *int `json:"timeWatched,omitempty"` } // Page of data (Used for internal use only) type InternalPage struct { MediaSubmissions []*MediaSubmission `json:"mediaSubmissions,omitempty"` CharacterSubmissions []*CharacterSubmission `json:"characterSubmissions,omitempty"` StaffSubmissions []*StaffSubmission `json:"staffSubmissions,omitempty"` RevisionHistory []*RevisionHistory `json:"revisionHistory,omitempty"` Reports []*Report `json:"reports,omitempty"` ModActions []*ModAction `json:"modActions,omitempty"` UserBlockSearch []*User `json:"userBlockSearch,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` Users []*User `json:"users,omitempty"` Media []*Media `json:"media,omitempty"` Characters []*Character `json:"characters,omitempty"` Staff []*Staff `json:"staff,omitempty"` Studios []*Studio `json:"studios,omitempty"` MediaList []*MediaList `json:"mediaList,omitempty"` AiringSchedules []*AiringSchedule `json:"airingSchedules,omitempty"` MediaTrends []*MediaTrend `json:"mediaTrends,omitempty"` Notifications []NotificationUnion `json:"notifications,omitempty"` Followers []*User `json:"followers,omitempty"` Following []*User `json:"following,omitempty"` Activities []ActivityUnion `json:"activities,omitempty"` ActivityReplies []*ActivityReply `json:"activityReplies,omitempty"` Threads []*Thread `json:"threads,omitempty"` ThreadComments []*ThreadComment `json:"threadComments,omitempty"` Reviews []*Review `json:"reviews,omitempty"` Recommendations []*Recommendation `json:"recommendations,omitempty"` Likes []*User `json:"likes,omitempty"` } // User list activity (anime & manga updates) type ListActivity struct { // The id of the activity ID int `json:"id"` // The user id of the activity's creator UserID *int `json:"userId,omitempty"` // The type of activity Type *ActivityType `json:"type,omitempty"` // The number of activity replies ReplyCount int `json:"replyCount"` // The list item's textual status Status *string `json:"status,omitempty"` // The list progress made Progress *string `json:"progress,omitempty"` // If the activity is locked and can receive replies IsLocked *bool `json:"isLocked,omitempty"` // If the currently authenticated user is subscribed to the activity IsSubscribed *bool `json:"isSubscribed,omitempty"` // The amount of likes the activity has LikeCount int `json:"likeCount"` // If the currently authenticated user liked the activity IsLiked *bool `json:"isLiked,omitempty"` // If the activity is pinned to the top of the users activity feed IsPinned *bool `json:"isPinned,omitempty"` // The url for the activity page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // The time the activity was created at CreatedAt int `json:"createdAt"` // The owner of the activity User *User `json:"user,omitempty"` // The associated media to the activity update Media *Media `json:"media,omitempty"` // The written replies to the activity Replies []*ActivityReply `json:"replies,omitempty"` // The users who liked the activity Likes []*User `json:"likes,omitempty"` } func (ListActivity) IsActivityUnion() {} func (ListActivity) IsLikeableUnion() {} type ListActivityOption struct { Disabled *bool `json:"disabled,omitempty"` Type *MediaListStatus `json:"type,omitempty"` } type ListActivityOptionInput struct { Disabled *bool `json:"disabled,omitempty"` Type *MediaListStatus `json:"type,omitempty"` } // User's list score statistics type ListScoreStats struct { MeanScore *int `json:"meanScore,omitempty"` StandardDeviation *int `json:"standardDeviation,omitempty"` } // Anime or Manga type Media struct { // The id of the media ID int `json:"id"` // The mal id of the media IDMal *int `json:"idMal,omitempty"` // The official titles of the media in various languages Title *MediaTitle `json:"title,omitempty"` // The type of the media; anime or manga Type *MediaType `json:"type,omitempty"` // The format the media was released in Format *MediaFormat `json:"format,omitempty"` // The current releasing status of the media Status *MediaStatus `json:"status,omitempty"` // Short description of the media's story and characters Description *string `json:"description,omitempty"` // The first official release date of the media StartDate *FuzzyDate `json:"startDate,omitempty"` // The last official release date of the media EndDate *FuzzyDate `json:"endDate,omitempty"` // The season the media was initially released in Season *MediaSeason `json:"season,omitempty"` // The season year the media was initially released in SeasonYear *int `json:"seasonYear,omitempty"` // The year & season the media was initially released in SeasonInt *int `json:"seasonInt,omitempty"` // The amount of episodes the anime has when complete Episodes *int `json:"episodes,omitempty"` // The general length of each anime episode in minutes Duration *int `json:"duration,omitempty"` // The amount of chapters the manga has when complete Chapters *int `json:"chapters,omitempty"` // The amount of volumes the manga has when complete Volumes *int `json:"volumes,omitempty"` // Where the media was created. (ISO 3166-1 alpha-2) CountryOfOrigin *string `json:"countryOfOrigin,omitempty"` // If the media is officially licensed or a self-published doujin release IsLicensed *bool `json:"isLicensed,omitempty"` // Source type the media was adapted from. Source *MediaSource `json:"source,omitempty"` // Official Twitter hashtags for the media Hashtag *string `json:"hashtag,omitempty"` // Media trailer or advertisement Trailer *MediaTrailer `json:"trailer,omitempty"` // When the media's data was last updated UpdatedAt *int `json:"updatedAt,omitempty"` // The cover images of the media CoverImage *MediaCoverImage `json:"coverImage,omitempty"` // The banner image of the media BannerImage *string `json:"bannerImage,omitempty"` // The genres of the media Genres []*string `json:"genres,omitempty"` // Alternative titles of the media Synonyms []*string `json:"synonyms,omitempty"` // A weighted average score of all the user's scores of the media AverageScore *int `json:"averageScore,omitempty"` // Mean score of all the user's scores of the media MeanScore *int `json:"meanScore,omitempty"` // The number of users with the media on their list Popularity *int `json:"popularity,omitempty"` // Locked media may not be added to lists our favorited. This may be due to the entry pending for deletion or other reasons. IsLocked *bool `json:"isLocked,omitempty"` // The amount of related activity in the past hour Trending *int `json:"trending,omitempty"` // The amount of user's who have favourited the media Favourites *int `json:"favourites,omitempty"` // List of tags that describes elements and themes of the media Tags []*MediaTag `json:"tags,omitempty"` // Other media in the same or connecting franchise Relations *MediaConnection `json:"relations,omitempty"` // The characters in the media Characters *CharacterConnection `json:"characters,omitempty"` // The staff who produced the media Staff *StaffConnection `json:"staff,omitempty"` // The companies who produced the media Studios *StudioConnection `json:"studios,omitempty"` // If the media is marked as favourite by the current authenticated user IsFavourite bool `json:"isFavourite"` // If the media is blocked from being added to favourites IsFavouriteBlocked bool `json:"isFavouriteBlocked"` // If the media is intended only for 18+ adult audiences IsAdult *bool `json:"isAdult,omitempty"` // The media's next episode airing schedule NextAiringEpisode *AiringSchedule `json:"nextAiringEpisode,omitempty"` // The media's entire airing schedule AiringSchedule *AiringScheduleConnection `json:"airingSchedule,omitempty"` // The media's daily trend stats Trends *MediaTrendConnection `json:"trends,omitempty"` // External links to another site related to the media ExternalLinks []*MediaExternalLink `json:"externalLinks,omitempty"` // Data and links to legal streaming episodes on external sites StreamingEpisodes []*MediaStreamingEpisode `json:"streamingEpisodes,omitempty"` // The ranking of the media in a particular time span and format compared to other media Rankings []*MediaRank `json:"rankings,omitempty"` // The authenticated user's media list entry for the media MediaListEntry *MediaList `json:"mediaListEntry,omitempty"` // User reviews of the media Reviews *ReviewConnection `json:"reviews,omitempty"` // User recommendations for similar media Recommendations *RecommendationConnection `json:"recommendations,omitempty"` Stats *MediaStats `json:"stats,omitempty"` // The url for the media page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // If the media should have forum thread automatically created for it on airing episode release AutoCreateForumThread *bool `json:"autoCreateForumThread,omitempty"` // If the media is blocked from being recommended to/from IsRecommendationBlocked *bool `json:"isRecommendationBlocked,omitempty"` // If the media is blocked from being reviewed IsReviewBlocked *bool `json:"isReviewBlocked,omitempty"` // Notes for site moderators ModNotes *string `json:"modNotes,omitempty"` } // Internal - Media characters separated type MediaCharacter struct { // The id of the connection ID *int `json:"id,omitempty"` // The characters role in the media Role *CharacterRole `json:"role,omitempty"` RoleNotes *string `json:"roleNotes,omitempty"` DubGroup *string `json:"dubGroup,omitempty"` // Media specific character name CharacterName *string `json:"characterName,omitempty"` // The characters in the media voiced by the parent actor Character *Character `json:"character,omitempty"` // The voice actor of the character VoiceActor *Staff `json:"voiceActor,omitempty"` } type MediaConnection struct { Edges []*MediaEdge `json:"edges,omitempty"` Nodes []*Media `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } type MediaCoverImage struct { // The cover image url of the media at its largest size. If this size isn't available, large will be provided instead. ExtraLarge *string `json:"extraLarge,omitempty"` // The cover image url of the media at a large size Large *string `json:"large,omitempty"` // The cover image url of the media at medium size Medium *string `json:"medium,omitempty"` // Average #hex color of cover image Color *string `json:"color,omitempty"` } // Notification for when a media entry's data was changed in a significant way impacting users' list tracking type MediaDataChangeNotification struct { // The id of the Notification ID int `json:"id"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the media that received data changes MediaID int `json:"mediaId"` // The reason for the media data change Context *string `json:"context,omitempty"` // The reason for the media data change Reason *string `json:"reason,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The media that received data changes Media *Media `json:"media,omitempty"` } func (MediaDataChangeNotification) IsNotificationUnion() {} // Notification for when a media tracked in a user's list is deleted from the site type MediaDeletionNotification struct { // The id of the Notification ID int `json:"id"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The title of the deleted media DeletedMediaTitle *string `json:"deletedMediaTitle,omitempty"` // The reason for the media deletion Context *string `json:"context,omitempty"` // The reason for the media deletion Reason *string `json:"reason,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` } func (MediaDeletionNotification) IsNotificationUnion() {} // Media connection edge type MediaEdge struct { Node *Media `json:"node,omitempty"` // The id of the connection ID *int `json:"id,omitempty"` // The type of relation to the parent model RelationType *MediaRelation `json:"relationType,omitempty"` // If the studio is the main animation studio of the media (For Studio->MediaConnection field only) IsMainStudio bool `json:"isMainStudio"` // The characters in the media voiced by the parent actor Characters []*Character `json:"characters,omitempty"` // The characters role in the media CharacterRole *CharacterRole `json:"characterRole,omitempty"` // Media specific character name CharacterName *string `json:"characterName,omitempty"` // Notes regarding the VA's role for the character RoleNotes *string `json:"roleNotes,omitempty"` // Used for grouping roles where multiple dubs exist for the same language. Either dubbing company name or language variant. DubGroup *string `json:"dubGroup,omitempty"` // The role of the staff member in the production of the media StaffRole *string `json:"staffRole,omitempty"` // The voice actors of the character VoiceActors []*Staff `json:"voiceActors,omitempty"` // The voice actors of the character with role date VoiceActorRoles []*StaffRoleType `json:"voiceActorRoles,omitempty"` // The order the media should be displayed from the users favourites FavouriteOrder *int `json:"favouriteOrder,omitempty"` } // An external link to another site related to the media or staff member type MediaExternalLink struct { // The id of the external link ID int `json:"id"` // The url of the external link or base url of link source URL *string `json:"url,omitempty"` // The links website site name Site string `json:"site"` // The links website site id SiteID *int `json:"siteId,omitempty"` Type *ExternalLinkType `json:"type,omitempty"` // Language the site content is in. See Staff language field for values. Language *string `json:"language,omitempty"` Color *string `json:"color,omitempty"` // The icon image url of the site. Not available for all links. Transparent PNG 64x64 Icon *string `json:"icon,omitempty"` Notes *string `json:"notes,omitempty"` IsDisabled *bool `json:"isDisabled,omitempty"` } // An external link to another site related to the media type MediaExternalLinkInput struct { // The id of the external link ID int `json:"id"` // The url of the external link URL string `json:"url"` // The site location of the external link Site string `json:"site"` } // List of anime or manga type MediaList struct { // The id of the list entry ID int `json:"id"` // The id of the user owner of the list entry UserID int `json:"userId"` // The id of the media MediaID int `json:"mediaId"` // The watching/reading status Status *MediaListStatus `json:"status,omitempty"` // The score of the entry Score *float64 `json:"score,omitempty"` // The amount of episodes/chapters consumed by the user Progress *int `json:"progress,omitempty"` // The amount of volumes read by the user ProgressVolumes *int `json:"progressVolumes,omitempty"` // The amount of times the user has rewatched/read the media Repeat *int `json:"repeat,omitempty"` // Priority of planning Priority *int `json:"priority,omitempty"` // If the entry should only be visible to authenticated user Private *bool `json:"private,omitempty"` // Text notes Notes *string `json:"notes,omitempty"` // If the entry shown be hidden from non-custom lists HiddenFromStatusLists *bool `json:"hiddenFromStatusLists,omitempty"` // Map of booleans for which custom lists the entry are in CustomLists *string `json:"customLists,omitempty"` // Map of advanced scores with name keys AdvancedScores *string `json:"advancedScores,omitempty"` // When the entry was started by the user StartedAt *FuzzyDate `json:"startedAt,omitempty"` // When the entry was completed by the user CompletedAt *FuzzyDate `json:"completedAt,omitempty"` // When the entry data was last updated UpdatedAt *int `json:"updatedAt,omitempty"` // When the entry data was created CreatedAt *int `json:"createdAt,omitempty"` Media *Media `json:"media,omitempty"` User *User `json:"user,omitempty"` } // List of anime or manga type MediaListCollection struct { // Grouped media list entries Lists []*MediaListGroup `json:"lists,omitempty"` // The owner of the list User *User `json:"user,omitempty"` // If there is another chunk HasNextChunk *bool `json:"hasNextChunk,omitempty"` // A map of media list entry arrays grouped by status StatusLists [][]*MediaList `json:"statusLists,omitempty"` // A map of media list entry arrays grouped by custom lists CustomLists [][]*MediaList `json:"customLists,omitempty"` } // List group of anime or manga entries type MediaListGroup struct { // Media list entries Entries []*MediaList `json:"entries,omitempty"` Name *string `json:"name,omitempty"` IsCustomList *bool `json:"isCustomList,omitempty"` IsSplitCompletedList *bool `json:"isSplitCompletedList,omitempty"` Status *MediaListStatus `json:"status,omitempty"` } // A user's list options type MediaListOptions struct { // The score format the user is using for media lists ScoreFormat *ScoreFormat `json:"scoreFormat,omitempty"` // The default order list rows should be displayed in RowOrder *string `json:"rowOrder,omitempty"` UseLegacyLists *bool `json:"useLegacyLists,omitempty"` // The user's anime list options AnimeList *MediaListTypeOptions `json:"animeList,omitempty"` // The user's manga list options MangaList *MediaListTypeOptions `json:"mangaList,omitempty"` // The list theme options for both lists SharedTheme *string `json:"sharedTheme,omitempty"` // If the shared theme should be used instead of the individual list themes SharedThemeEnabled *bool `json:"sharedThemeEnabled,omitempty"` } // A user's list options for anime or manga lists type MediaListOptionsInput struct { // The order each list should be displayed in SectionOrder []*string `json:"sectionOrder,omitempty"` // If the completed sections of the list should be separated by format SplitCompletedSectionByFormat *bool `json:"splitCompletedSectionByFormat,omitempty"` // The names of the user's custom lists CustomLists []*string `json:"customLists,omitempty"` // The names of the user's advanced scoring sections AdvancedScoring []*string `json:"advancedScoring,omitempty"` // If advanced scoring is enabled AdvancedScoringEnabled *bool `json:"advancedScoringEnabled,omitempty"` // list theme Theme *string `json:"theme,omitempty"` } // A user's list options for anime or manga lists type MediaListTypeOptions struct { // The order each list should be displayed in SectionOrder []*string `json:"sectionOrder,omitempty"` // If the completed sections of the list should be separated by format SplitCompletedSectionByFormat *bool `json:"splitCompletedSectionByFormat,omitempty"` // The list theme options Theme *string `json:"theme,omitempty"` // The names of the user's custom lists CustomLists []*string `json:"customLists,omitempty"` // The names of the user's advanced scoring sections AdvancedScoring []*string `json:"advancedScoring,omitempty"` // If advanced scoring is enabled AdvancedScoringEnabled *bool `json:"advancedScoringEnabled,omitempty"` } // Notification for when a media entry is merged into another for a user who had it on their list type MediaMergeNotification struct { // The id of the Notification ID int `json:"id"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the media that was merged into MediaID int `json:"mediaId"` // The title of the deleted media DeletedMediaTitles []*string `json:"deletedMediaTitles,omitempty"` // The reason for the media data change Context *string `json:"context,omitempty"` // The reason for the media merge Reason *string `json:"reason,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The media that was merged into Media *Media `json:"media,omitempty"` } func (MediaMergeNotification) IsNotificationUnion() {} // The ranking of a media in a particular time span and format compared to other media type MediaRank struct { // The id of the rank ID int `json:"id"` // The numerical rank of the media Rank int `json:"rank"` // The type of ranking Type MediaRankType `json:"type"` // The format the media is ranked within Format MediaFormat `json:"format"` // The year the media is ranked within Year *int `json:"year,omitempty"` // The season the media is ranked within Season *MediaSeason `json:"season,omitempty"` // If the ranking is based on all time instead of a season/year AllTime *bool `json:"allTime,omitempty"` // String that gives context to the ranking type and time span Context string `json:"context"` } // A media's statistics type MediaStats struct { ScoreDistribution []*ScoreDistribution `json:"scoreDistribution,omitempty"` StatusDistribution []*StatusDistribution `json:"statusDistribution,omitempty"` AiringProgression []*AiringProgression `json:"airingProgression,omitempty"` } // Data and links to legal streaming episodes on external sites type MediaStreamingEpisode struct { // Title of the episode Title *string `json:"title,omitempty"` // Url of episode image thumbnail Thumbnail *string `json:"thumbnail,omitempty"` // The url of the episode URL *string `json:"url,omitempty"` // The site location of the streaming episodes Site *string `json:"site,omitempty"` } // Media submission type MediaSubmission struct { // The id of the submission ID int `json:"id"` // User submitter of the submission Submitter *User `json:"submitter,omitempty"` // Data Mod assigned to handle the submission Assignee *User `json:"assignee,omitempty"` // Status of the submission Status *SubmissionStatus `json:"status,omitempty"` SubmitterStats *string `json:"submitterStats,omitempty"` Notes *string `json:"notes,omitempty"` Source *string `json:"source,omitempty"` Changes []*string `json:"changes,omitempty"` // Whether the submission is locked Locked *bool `json:"locked,omitempty"` Media *Media `json:"media,omitempty"` Submission *Media `json:"submission,omitempty"` Characters []*MediaSubmissionComparison `json:"characters,omitempty"` Staff []*MediaSubmissionComparison `json:"staff,omitempty"` Studios []*MediaSubmissionComparison `json:"studios,omitempty"` Relations []*MediaEdge `json:"relations,omitempty"` ExternalLinks []*MediaSubmissionComparison `json:"externalLinks,omitempty"` CreatedAt *int `json:"createdAt,omitempty"` } // Media submission with comparison to current data type MediaSubmissionComparison struct { Submission *MediaSubmissionEdge `json:"submission,omitempty"` Character *MediaCharacter `json:"character,omitempty"` Staff *StaffEdge `json:"staff,omitempty"` Studio *StudioEdge `json:"studio,omitempty"` ExternalLink *MediaExternalLink `json:"externalLink,omitempty"` } type MediaSubmissionEdge struct { // The id of the direct submission ID *int `json:"id,omitempty"` CharacterRole *CharacterRole `json:"characterRole,omitempty"` StaffRole *string `json:"staffRole,omitempty"` RoleNotes *string `json:"roleNotes,omitempty"` DubGroup *string `json:"dubGroup,omitempty"` CharacterName *string `json:"characterName,omitempty"` IsMain *bool `json:"isMain,omitempty"` Character *Character `json:"character,omitempty"` CharacterSubmission *Character `json:"characterSubmission,omitempty"` VoiceActor *Staff `json:"voiceActor,omitempty"` VoiceActorSubmission *Staff `json:"voiceActorSubmission,omitempty"` Staff *Staff `json:"staff,omitempty"` StaffSubmission *Staff `json:"staffSubmission,omitempty"` Studio *Studio `json:"studio,omitempty"` ExternalLink *MediaExternalLink `json:"externalLink,omitempty"` Media *Media `json:"media,omitempty"` } // A tag that describes a theme or element of the media type MediaTag struct { // The id of the tag ID int `json:"id"` // The name of the tag Name string `json:"name"` // A general description of the tag Description *string `json:"description,omitempty"` // The categories of tags this tag belongs to Category *string `json:"category,omitempty"` // The relevance ranking of the tag out of the 100 for this media Rank *int `json:"rank,omitempty"` // If the tag could be a spoiler for any media IsGeneralSpoiler *bool `json:"isGeneralSpoiler,omitempty"` // If the tag is a spoiler for this media IsMediaSpoiler *bool `json:"isMediaSpoiler,omitempty"` // If the tag is only for adult 18+ media IsAdult *bool `json:"isAdult,omitempty"` // The user who submitted the tag UserID *int `json:"userId,omitempty"` } // The official titles of the media in various languages type MediaTitle struct { // The romanization of the native language title Romaji *string `json:"romaji,omitempty"` // The official english title English *string `json:"english,omitempty"` // Official title in it's native language Native *string `json:"native,omitempty"` // The currently authenticated users preferred title language. Default romaji for non-authenticated UserPreferred *string `json:"userPreferred,omitempty"` } // The official titles of the media in various languages type MediaTitleInput struct { // The romanization of the native language title Romaji *string `json:"romaji,omitempty"` // The official english title English *string `json:"english,omitempty"` // Official title in it's native language Native *string `json:"native,omitempty"` } // Media trailer or advertisement type MediaTrailer struct { // The trailer video id ID *string `json:"id,omitempty"` // The site the video is hosted by (Currently either youtube or dailymotion) Site *string `json:"site,omitempty"` // The url for the thumbnail image of the video Thumbnail *string `json:"thumbnail,omitempty"` } // Daily media statistics type MediaTrend struct { // The id of the tag MediaID int `json:"mediaId"` // The day the data was recorded (timestamp) Date int `json:"date"` // The amount of media activity on the day Trending int `json:"trending"` // A weighted average score of all the user's scores of the media AverageScore *int `json:"averageScore,omitempty"` // The number of users with the media on their list Popularity *int `json:"popularity,omitempty"` // The number of users with watching/reading the media InProgress *int `json:"inProgress,omitempty"` // If the media was being released at this time Releasing bool `json:"releasing"` // The episode number of the anime released on this day Episode *int `json:"episode,omitempty"` // The related media Media *Media `json:"media,omitempty"` } type MediaTrendConnection struct { Edges []*MediaTrendEdge `json:"edges,omitempty"` Nodes []*MediaTrend `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // Media trend connection edge type MediaTrendEdge struct { Node *MediaTrend `json:"node,omitempty"` } // User message activity type MessageActivity struct { // The id of the activity ID int `json:"id"` // The user id of the activity's recipient RecipientID *int `json:"recipientId,omitempty"` // The user id of the activity's sender MessengerID *int `json:"messengerId,omitempty"` // The type of the activity Type *ActivityType `json:"type,omitempty"` // The number of activity replies ReplyCount int `json:"replyCount"` // The message text (Markdown) Message *string `json:"message,omitempty"` // If the activity is locked and can receive replies IsLocked *bool `json:"isLocked,omitempty"` // If the currently authenticated user is subscribed to the activity IsSubscribed *bool `json:"isSubscribed,omitempty"` // The amount of likes the activity has LikeCount int `json:"likeCount"` // If the currently authenticated user liked the activity IsLiked *bool `json:"isLiked,omitempty"` // If the message is private and only viewable to the sender and recipients IsPrivate *bool `json:"isPrivate,omitempty"` // The url for the activity page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // The time the activity was created at CreatedAt int `json:"createdAt"` // The user who the activity message was sent to Recipient *User `json:"recipient,omitempty"` // The user who sent the activity message Messenger *User `json:"messenger,omitempty"` // The written replies to the activity Replies []*ActivityReply `json:"replies,omitempty"` // The users who liked the activity Likes []*User `json:"likes,omitempty"` } func (MessageActivity) IsActivityUnion() {} func (MessageActivity) IsLikeableUnion() {} type ModAction struct { // The id of the action ID int `json:"id"` User *User `json:"user,omitempty"` Mod *User `json:"mod,omitempty"` Type *ModActionType `json:"type,omitempty"` ObjectID *int `json:"objectId,omitempty"` ObjectType *string `json:"objectType,omitempty"` Data *string `json:"data,omitempty"` CreatedAt int `json:"createdAt"` } type Mutation struct { } // Notification option type NotificationOption struct { // The type of notification Type *NotificationType `json:"type,omitempty"` // Whether this type of notification is enabled Enabled *bool `json:"enabled,omitempty"` } // Notification option input type NotificationOptionInput struct { // The type of notification Type *NotificationType `json:"type,omitempty"` // Whether this type of notification is enabled Enabled *bool `json:"enabled,omitempty"` } // Page of data type Page struct { // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` Users []*User `json:"users,omitempty"` Media []*Media `json:"media,omitempty"` Characters []*Character `json:"characters,omitempty"` Staff []*Staff `json:"staff,omitempty"` Studios []*Studio `json:"studios,omitempty"` MediaList []*MediaList `json:"mediaList,omitempty"` AiringSchedules []*AiringSchedule `json:"airingSchedules,omitempty"` MediaTrends []*MediaTrend `json:"mediaTrends,omitempty"` Notifications []NotificationUnion `json:"notifications,omitempty"` Followers []*User `json:"followers,omitempty"` Following []*User `json:"following,omitempty"` Activities []ActivityUnion `json:"activities,omitempty"` ActivityReplies []*ActivityReply `json:"activityReplies,omitempty"` Threads []*Thread `json:"threads,omitempty"` ThreadComments []*ThreadComment `json:"threadComments,omitempty"` Reviews []*Review `json:"reviews,omitempty"` Recommendations []*Recommendation `json:"recommendations,omitempty"` Likes []*User `json:"likes,omitempty"` } type PageInfo struct { // The total number of items. Note: This value is not guaranteed to be accurate, do not rely on this for logic Total *int `json:"total,omitempty"` // The count on a page PerPage *int `json:"perPage,omitempty"` // The current page CurrentPage *int `json:"currentPage,omitempty"` // The last page LastPage *int `json:"lastPage,omitempty"` // If there is another page HasNextPage *bool `json:"hasNextPage,omitempty"` } // Provides the parsed markdown as html type ParsedMarkdown struct { // The parsed markdown as html HTML *string `json:"html,omitempty"` } type Query struct { } // Media recommendation type Recommendation struct { // The id of the recommendation ID int `json:"id"` // Users rating of the recommendation Rating *int `json:"rating,omitempty"` // The rating of the recommendation by currently authenticated user UserRating *RecommendationRating `json:"userRating,omitempty"` // The media the recommendation is from Media *Media `json:"media,omitempty"` // The recommended media MediaRecommendation *Media `json:"mediaRecommendation,omitempty"` // The user that first created the recommendation User *User `json:"user,omitempty"` } type RecommendationConnection struct { Edges []*RecommendationEdge `json:"edges,omitempty"` Nodes []*Recommendation `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // Recommendation connection edge type RecommendationEdge struct { Node *Recommendation `json:"node,omitempty"` } // Notification for when new media is added to the site type RelatedMediaAdditionNotification struct { // The id of the Notification ID int `json:"id"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the new media MediaID int `json:"mediaId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The associated media of the airing schedule Media *Media `json:"media,omitempty"` } func (RelatedMediaAdditionNotification) IsNotificationUnion() {} type Report struct { ID int `json:"id"` Reporter *User `json:"reporter,omitempty"` Reported *User `json:"reported,omitempty"` Reason *string `json:"reason,omitempty"` // When the entry data was created CreatedAt *int `json:"createdAt,omitempty"` Cleared *bool `json:"cleared,omitempty"` } // A Review that features in an anime or manga type Review struct { // The id of the review ID int `json:"id"` // The id of the review's creator UserID int `json:"userId"` // The id of the review's media MediaID int `json:"mediaId"` // For which type of media the review is for MediaType *MediaType `json:"mediaType,omitempty"` // A short summary of the review Summary *string `json:"summary,omitempty"` // The main review body text Body *string `json:"body,omitempty"` // The total user rating of the review Rating *int `json:"rating,omitempty"` // The amount of user ratings of the review RatingAmount *int `json:"ratingAmount,omitempty"` // The rating of the review by currently authenticated user UserRating *ReviewRating `json:"userRating,omitempty"` // The review score of the media Score *int `json:"score,omitempty"` // If the review is not yet publicly published and is only viewable by creator Private *bool `json:"private,omitempty"` // The url for the review page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // The time of the thread creation CreatedAt int `json:"createdAt"` // The time of the thread last update UpdatedAt int `json:"updatedAt"` // The creator of the review User *User `json:"user,omitempty"` // The media the review is of Media *Media `json:"media,omitempty"` } type ReviewConnection struct { Edges []*ReviewEdge `json:"edges,omitempty"` Nodes []*Review `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // Review connection edge type ReviewEdge struct { Node *Review `json:"node,omitempty"` } // Feed of mod edit activity type RevisionHistory struct { // The id of the media ID int `json:"id"` // The action taken on the objects Action *RevisionHistoryAction `json:"action,omitempty"` // A JSON object of the fields that changed Changes *string `json:"changes,omitempty"` // The user who made the edit to the object User *User `json:"user,omitempty"` // The media the mod feed entry references Media *Media `json:"media,omitempty"` // The character the mod feed entry references Character *Character `json:"character,omitempty"` // The staff member the mod feed entry references Staff *Staff `json:"staff,omitempty"` // The studio the mod feed entry references Studio *Studio `json:"studio,omitempty"` // The external link source the mod feed entry references ExternalLink *MediaExternalLink `json:"externalLink,omitempty"` // When the mod feed entry was created CreatedAt *int `json:"createdAt,omitempty"` } // A user's list score distribution. type ScoreDistribution struct { Score *int `json:"score,omitempty"` // The amount of list entries with this score Amount *int `json:"amount,omitempty"` } type SiteStatistics struct { Users *SiteTrendConnection `json:"users,omitempty"` Anime *SiteTrendConnection `json:"anime,omitempty"` Manga *SiteTrendConnection `json:"manga,omitempty"` Characters *SiteTrendConnection `json:"characters,omitempty"` Staff *SiteTrendConnection `json:"staff,omitempty"` Studios *SiteTrendConnection `json:"studios,omitempty"` Reviews *SiteTrendConnection `json:"reviews,omitempty"` } // Daily site statistics type SiteTrend struct { // The day the data was recorded (timestamp) Date int `json:"date"` Count int `json:"count"` // The change from yesterday Change int `json:"change"` } type SiteTrendConnection struct { Edges []*SiteTrendEdge `json:"edges,omitempty"` Nodes []*SiteTrend `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // Site trend connection edge type SiteTrendEdge struct { Node *SiteTrend `json:"node,omitempty"` } // Voice actors or production staff type Staff struct { // The id of the staff member ID int `json:"id"` // The names of the staff member Name *StaffName `json:"name,omitempty"` // The primary language the staff member dub's in Language *StaffLanguage `json:"language,omitempty"` // The primary language of the staff member. Current values: Japanese, English, Korean, Italian, Spanish, Portuguese, French, German, Hebrew, Hungarian, Chinese, Arabic, Filipino, Catalan, Finnish, Turkish, Dutch, Swedish, Thai, Tagalog, Malaysian, Indonesian, Vietnamese, Nepali, Hindi, Urdu LanguageV2 *string `json:"languageV2,omitempty"` // The staff images Image *StaffImage `json:"image,omitempty"` // A general description of the staff member Description *string `json:"description,omitempty"` // The person's primary occupations PrimaryOccupations []*string `json:"primaryOccupations,omitempty"` // The staff's gender. Usually Male, Female, or Non-binary but can be any string. Gender *string `json:"gender,omitempty"` DateOfBirth *FuzzyDate `json:"dateOfBirth,omitempty"` DateOfDeath *FuzzyDate `json:"dateOfDeath,omitempty"` // The person's age in years Age *int `json:"age,omitempty"` // [startYear, endYear] (If the 2nd value is not present staff is still active) YearsActive []*int `json:"yearsActive,omitempty"` // The persons birthplace or hometown HomeTown *string `json:"homeTown,omitempty"` // The persons blood type BloodType *string `json:"bloodType,omitempty"` // If the staff member is marked as favourite by the currently authenticated user IsFavourite bool `json:"isFavourite"` // If the staff member is blocked from being added to favourites IsFavouriteBlocked bool `json:"isFavouriteBlocked"` // The url for the staff page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // Media where the staff member has a production role StaffMedia *MediaConnection `json:"staffMedia,omitempty"` // Characters voiced by the actor Characters *CharacterConnection `json:"characters,omitempty"` // Media the actor voiced characters in. (Same data as characters with media as node instead of characters) CharacterMedia *MediaConnection `json:"characterMedia,omitempty"` UpdatedAt *int `json:"updatedAt,omitempty"` // Staff member that the submission is referencing Staff *Staff `json:"staff,omitempty"` // Submitter for the submission Submitter *User `json:"submitter,omitempty"` // Status of the submission SubmissionStatus *int `json:"submissionStatus,omitempty"` // Inner details of submission status SubmissionNotes *string `json:"submissionNotes,omitempty"` // The amount of user's who have favourited the staff member Favourites *int `json:"favourites,omitempty"` // Notes for site moderators ModNotes *string `json:"modNotes,omitempty"` } type StaffConnection struct { Edges []*StaffEdge `json:"edges,omitempty"` Nodes []*Staff `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // Staff connection edge type StaffEdge struct { Node *Staff `json:"node,omitempty"` // The id of the connection ID *int `json:"id,omitempty"` // The role of the staff member in the production of the media Role *string `json:"role,omitempty"` // The order the staff should be displayed from the users favourites FavouriteOrder *int `json:"favouriteOrder,omitempty"` } type StaffImage struct { // The person's image of media at its largest size Large *string `json:"large,omitempty"` // The person's image of media at medium size Medium *string `json:"medium,omitempty"` } // The names of the staff member type StaffName struct { // The person's given name First *string `json:"first,omitempty"` // The person's middle name Middle *string `json:"middle,omitempty"` // The person's surname Last *string `json:"last,omitempty"` // The person's first and last name Full *string `json:"full,omitempty"` // The person's full name in their native language Native *string `json:"native,omitempty"` // Other names the staff member might be referred to as (pen names) Alternative []*string `json:"alternative,omitempty"` // The currently authenticated users preferred name language. Default romaji for non-authenticated UserPreferred *string `json:"userPreferred,omitempty"` } // The names of the staff member type StaffNameInput struct { // The person's given name First *string `json:"first,omitempty"` // The person's middle name Middle *string `json:"middle,omitempty"` // The person's surname Last *string `json:"last,omitempty"` // The person's full name in their native language Native *string `json:"native,omitempty"` // Other names the character might be referred by Alternative []*string `json:"alternative,omitempty"` } // Voice actor role for a character type StaffRoleType struct { // The voice actors of the character VoiceActor *Staff `json:"voiceActor,omitempty"` // Notes regarding the VA's role for the character RoleNotes *string `json:"roleNotes,omitempty"` // Used for grouping roles where multiple dubs exist for the same language. Either dubbing company name or language variant. DubGroup *string `json:"dubGroup,omitempty"` } // User's staff statistics type StaffStats struct { Staff *Staff `json:"staff,omitempty"` Amount *int `json:"amount,omitempty"` MeanScore *int `json:"meanScore,omitempty"` // The amount of time in minutes the staff member has been watched by the user TimeWatched *int `json:"timeWatched,omitempty"` } // A submission for a staff that features in an anime or manga type StaffSubmission struct { // The id of the submission ID int `json:"id"` // Staff that the submission is referencing Staff *Staff `json:"staff,omitempty"` // The staff submission changes Submission *Staff `json:"submission,omitempty"` // Submitter for the submission Submitter *User `json:"submitter,omitempty"` // Data Mod assigned to handle the submission Assignee *User `json:"assignee,omitempty"` // Status of the submission Status *SubmissionStatus `json:"status,omitempty"` // Inner details of submission status Notes *string `json:"notes,omitempty"` Source *string `json:"source,omitempty"` // Whether the submission is locked Locked *bool `json:"locked,omitempty"` CreatedAt *int `json:"createdAt,omitempty"` } // The distribution of the watching/reading status of media or a user's list type StatusDistribution struct { // The day the activity took place (Unix timestamp) Status *MediaListStatus `json:"status,omitempty"` // The amount of entries with this status Amount *int `json:"amount,omitempty"` } // Animation or production company type Studio struct { // The id of the studio ID int `json:"id"` // The name of the studio Name string `json:"name"` // If the studio is an animation studio or a different kind of company IsAnimationStudio bool `json:"isAnimationStudio"` // The media the studio has worked on Media *MediaConnection `json:"media,omitempty"` // The url for the studio page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // If the studio is marked as favourite by the currently authenticated user IsFavourite bool `json:"isFavourite"` // The amount of user's who have favourited the studio Favourites *int `json:"favourites,omitempty"` } type StudioConnection struct { Edges []*StudioEdge `json:"edges,omitempty"` Nodes []*Studio `json:"nodes,omitempty"` // The pagination information PageInfo *PageInfo `json:"pageInfo,omitempty"` } // Studio connection edge type StudioEdge struct { Node *Studio `json:"node,omitempty"` // The id of the connection ID *int `json:"id,omitempty"` // If the studio is the main animation studio of the anime IsMain bool `json:"isMain"` // The order the character should be displayed from the users favourites FavouriteOrder *int `json:"favouriteOrder,omitempty"` } // User's studio statistics type StudioStats struct { Studio *Studio `json:"studio,omitempty"` Amount *int `json:"amount,omitempty"` MeanScore *int `json:"meanScore,omitempty"` // The amount of time in minutes the studio's works have been watched by the user TimeWatched *int `json:"timeWatched,omitempty"` } // User's tag statistics type TagStats struct { Tag *MediaTag `json:"tag,omitempty"` Amount *int `json:"amount,omitempty"` MeanScore *int `json:"meanScore,omitempty"` // The amount of time in minutes the tag has been watched by the user TimeWatched *int `json:"timeWatched,omitempty"` } // User text activity type TextActivity struct { // The id of the activity ID int `json:"id"` // The user id of the activity's creator UserID *int `json:"userId,omitempty"` // The type of activity Type *ActivityType `json:"type,omitempty"` // The number of activity replies ReplyCount int `json:"replyCount"` // The status text (Markdown) Text *string `json:"text,omitempty"` // The url for the activity page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // If the activity is locked and can receive replies IsLocked *bool `json:"isLocked,omitempty"` // If the currently authenticated user is subscribed to the activity IsSubscribed *bool `json:"isSubscribed,omitempty"` // The amount of likes the activity has LikeCount int `json:"likeCount"` // If the currently authenticated user liked the activity IsLiked *bool `json:"isLiked,omitempty"` // If the activity is pinned to the top of the users activity feed IsPinned *bool `json:"isPinned,omitempty"` // The time the activity was created at CreatedAt int `json:"createdAt"` // The user who created the activity User *User `json:"user,omitempty"` // The written replies to the activity Replies []*ActivityReply `json:"replies,omitempty"` // The users who liked the activity Likes []*User `json:"likes,omitempty"` } func (TextActivity) IsActivityUnion() {} func (TextActivity) IsLikeableUnion() {} // Forum Thread type Thread struct { // The id of the thread ID int `json:"id"` // The title of the thread Title *string `json:"title,omitempty"` // The text body of the thread (Markdown) Body *string `json:"body,omitempty"` // The id of the thread owner user UserID int `json:"userId"` // The id of the user who most recently commented on the thread ReplyUserID *int `json:"replyUserId,omitempty"` // The id of the most recent comment on the thread ReplyCommentID *int `json:"replyCommentId,omitempty"` // The number of comments on the thread ReplyCount *int `json:"replyCount,omitempty"` // The number of times users have viewed the thread ViewCount *int `json:"viewCount,omitempty"` // If the thread is locked and can receive comments IsLocked *bool `json:"isLocked,omitempty"` // If the thread is stickied and should be displayed at the top of the page IsSticky *bool `json:"isSticky,omitempty"` // If the currently authenticated user is subscribed to the thread IsSubscribed *bool `json:"isSubscribed,omitempty"` // The amount of likes the thread has LikeCount int `json:"likeCount"` // If the currently authenticated user liked the thread IsLiked *bool `json:"isLiked,omitempty"` // The time of the last reply RepliedAt *int `json:"repliedAt,omitempty"` // The time of the thread creation CreatedAt int `json:"createdAt"` // The time of the thread last update UpdatedAt int `json:"updatedAt"` // The owner of the thread User *User `json:"user,omitempty"` // The user to last reply to the thread ReplyUser *User `json:"replyUser,omitempty"` // The users who liked the thread Likes []*User `json:"likes,omitempty"` // The url for the thread page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // The categories of the thread Categories []*ThreadCategory `json:"categories,omitempty"` // The media categories of the thread MediaCategories []*Media `json:"mediaCategories,omitempty"` } func (Thread) IsLikeableUnion() {} // A forum thread category type ThreadCategory struct { // The id of the category ID int `json:"id"` // The name of the category Name string `json:"name"` } // Forum Thread Comment type ThreadComment struct { // The id of the comment ID int `json:"id"` // The user id of the comment's owner UserID *int `json:"userId,omitempty"` // The id of thread the comment belongs to ThreadID *int `json:"threadId,omitempty"` // The text content of the comment (Markdown) Comment *string `json:"comment,omitempty"` // The amount of likes the comment has LikeCount int `json:"likeCount"` // If the currently authenticated user liked the comment IsLiked *bool `json:"isLiked,omitempty"` // The url for the comment page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // The time of the comments creation CreatedAt int `json:"createdAt"` // The time of the comments last update UpdatedAt int `json:"updatedAt"` // The thread the comment belongs to Thread *Thread `json:"thread,omitempty"` // The user who created the comment User *User `json:"user,omitempty"` // The users who liked the comment Likes []*User `json:"likes,omitempty"` // The comment's child reply comments ChildComments *string `json:"childComments,omitempty"` // If the comment tree is locked and may not receive replies or edits IsLocked *bool `json:"isLocked,omitempty"` } func (ThreadComment) IsLikeableUnion() {} // Notification for when a thread comment is liked type ThreadCommentLikeNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who liked to the activity UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the activity which was liked CommentID int `json:"commentId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The thread that the relevant comment belongs to Thread *Thread `json:"thread,omitempty"` // The thread comment that was liked Comment *ThreadComment `json:"comment,omitempty"` // The user who liked the activity User *User `json:"user,omitempty"` } func (ThreadCommentLikeNotification) IsNotificationUnion() {} // Notification for when authenticated user is @ mentioned in a forum thread comment type ThreadCommentMentionNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who mentioned the authenticated user UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the comment where mentioned CommentID int `json:"commentId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The thread that the relevant comment belongs to Thread *Thread `json:"thread,omitempty"` // The thread comment that included the @ mention Comment *ThreadComment `json:"comment,omitempty"` // The user who mentioned the authenticated user User *User `json:"user,omitempty"` } func (ThreadCommentMentionNotification) IsNotificationUnion() {} // Notification for when a user replies to your forum thread comment type ThreadCommentReplyNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who create the comment reply UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the reply comment CommentID int `json:"commentId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The thread that the relevant comment belongs to Thread *Thread `json:"thread,omitempty"` // The reply thread comment Comment *ThreadComment `json:"comment,omitempty"` // The user who replied to the activity User *User `json:"user,omitempty"` } func (ThreadCommentReplyNotification) IsNotificationUnion() {} // Notification for when a user replies to a subscribed forum thread type ThreadCommentSubscribedNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who commented on the thread UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the new comment in the subscribed thread CommentID int `json:"commentId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The thread that the relevant comment belongs to Thread *Thread `json:"thread,omitempty"` // The reply thread comment Comment *ThreadComment `json:"comment,omitempty"` // The user who replied to the subscribed thread User *User `json:"user,omitempty"` } func (ThreadCommentSubscribedNotification) IsNotificationUnion() {} // Notification for when a thread is liked type ThreadLikeNotification struct { // The id of the Notification ID int `json:"id"` // The id of the user who liked to the activity UserID int `json:"userId"` // The type of notification Type *NotificationType `json:"type,omitempty"` // The id of the thread which was liked ThreadID int `json:"threadId"` // The notification context text Context *string `json:"context,omitempty"` // The time the notification was created at CreatedAt *int `json:"createdAt,omitempty"` // The thread that the relevant comment belongs to Thread *Thread `json:"thread,omitempty"` // The liked thread comment Comment *ThreadComment `json:"comment,omitempty"` // The user who liked the activity User *User `json:"user,omitempty"` } func (ThreadLikeNotification) IsNotificationUnion() {} // A user type User struct { // The id of the user ID int `json:"id"` // The name of the user Name string `json:"name"` // The bio written by user (Markdown) About *string `json:"about,omitempty"` // The user's avatar images Avatar *UserAvatar `json:"avatar,omitempty"` // The user's banner images BannerImage *string `json:"bannerImage,omitempty"` // If the authenticated user if following this user IsFollowing *bool `json:"isFollowing,omitempty"` // If this user if following the authenticated user IsFollower *bool `json:"isFollower,omitempty"` // If the user is blocked by the authenticated user IsBlocked *bool `json:"isBlocked,omitempty"` Bans *string `json:"bans,omitempty"` // The user's general options Options *UserOptions `json:"options,omitempty"` // The user's media list options MediaListOptions *MediaListOptions `json:"mediaListOptions,omitempty"` // The users favourites Favourites *Favourites `json:"favourites,omitempty"` // The users anime & manga list statistics Statistics *UserStatisticTypes `json:"statistics,omitempty"` // The number of unread notifications the user has UnreadNotificationCount *int `json:"unreadNotificationCount,omitempty"` // The url for the user page on the AniList website SiteURL *string `json:"siteUrl,omitempty"` // The donation tier of the user DonatorTier *int `json:"donatorTier,omitempty"` // Custom donation badge text DonatorBadge *string `json:"donatorBadge,omitempty"` // The user's moderator roles if they are a site moderator ModeratorRoles []*ModRole `json:"moderatorRoles,omitempty"` // When the user's account was created. (Does not exist for accounts created before 2020) CreatedAt *int `json:"createdAt,omitempty"` // When the user's data was last updated UpdatedAt *int `json:"updatedAt,omitempty"` // The user's statistics Stats *UserStats `json:"stats,omitempty"` // If the user is a moderator or data moderator ModeratorStatus *string `json:"moderatorStatus,omitempty"` // The user's previously used names. PreviousNames []*UserPreviousName `json:"previousNames,omitempty"` } // A user's activity history stats. type UserActivityHistory struct { // The day the activity took place (Unix timestamp) Date *int `json:"date,omitempty"` // The amount of activity on the day Amount *int `json:"amount,omitempty"` // The level of activity represented on a 1-10 scale Level *int `json:"level,omitempty"` } // A user's avatars type UserAvatar struct { // The avatar of user at its largest size Large *string `json:"large,omitempty"` // The avatar of user at medium size Medium *string `json:"medium,omitempty"` } type UserCountryStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Country *string `json:"country,omitempty"` } type UserFormatStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Format *MediaFormat `json:"format,omitempty"` } type UserGenreStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Genre *string `json:"genre,omitempty"` } type UserLengthStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Length *string `json:"length,omitempty"` } // User data for moderators type UserModData struct { Alts []*User `json:"alts,omitempty"` Bans *string `json:"bans,omitempty"` IP *string `json:"ip,omitempty"` Counts *string `json:"counts,omitempty"` Privacy *int `json:"privacy,omitempty"` Email *string `json:"email,omitempty"` } // A user's general options type UserOptions struct { // The language the user wants to see media titles in TitleLanguage *UserTitleLanguage `json:"titleLanguage,omitempty"` // Whether the user has enabled viewing of 18+ content DisplayAdultContent *bool `json:"displayAdultContent,omitempty"` // Whether the user receives notifications when a show they are watching aires AiringNotifications *bool `json:"airingNotifications,omitempty"` // Profile highlight color (blue, purple, pink, orange, red, green, gray) ProfileColor *string `json:"profileColor,omitempty"` // Notification options NotificationOptions []*NotificationOption `json:"notificationOptions,omitempty"` // The user's timezone offset (Auth user only) Timezone *string `json:"timezone,omitempty"` // Minutes between activity for them to be merged together. 0 is Never, Above 2 weeks (20160 mins) is Always. ActivityMergeTime *int `json:"activityMergeTime,omitempty"` // The language the user wants to see staff and character names in StaffNameLanguage *UserStaffNameLanguage `json:"staffNameLanguage,omitempty"` // Whether the user only allow messages from users they follow RestrictMessagesToFollowing *bool `json:"restrictMessagesToFollowing,omitempty"` // The list activity types the user has disabled from being created from list updates DisabledListActivity []*ListActivityOption `json:"disabledListActivity,omitempty"` } // A user's previous name type UserPreviousName struct { // A previous name of the user. Name *string `json:"name,omitempty"` // When the user first changed from this name. CreatedAt *int `json:"createdAt,omitempty"` // When the user most recently changed from this name. UpdatedAt *int `json:"updatedAt,omitempty"` } type UserReleaseYearStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` ReleaseYear *int `json:"releaseYear,omitempty"` } type UserScoreStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Score *int `json:"score,omitempty"` } type UserStaffStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Staff *Staff `json:"staff,omitempty"` } type UserStartYearStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` StartYear *int `json:"startYear,omitempty"` } type UserStatisticTypes struct { Anime *UserStatistics `json:"anime,omitempty"` Manga *UserStatistics `json:"manga,omitempty"` } type UserStatistics struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` StandardDeviation float64 `json:"standardDeviation"` MinutesWatched int `json:"minutesWatched"` EpisodesWatched int `json:"episodesWatched"` ChaptersRead int `json:"chaptersRead"` VolumesRead int `json:"volumesRead"` Formats []*UserFormatStatistic `json:"formats,omitempty"` Statuses []*UserStatusStatistic `json:"statuses,omitempty"` Scores []*UserScoreStatistic `json:"scores,omitempty"` Lengths []*UserLengthStatistic `json:"lengths,omitempty"` ReleaseYears []*UserReleaseYearStatistic `json:"releaseYears,omitempty"` StartYears []*UserStartYearStatistic `json:"startYears,omitempty"` Genres []*UserGenreStatistic `json:"genres,omitempty"` Tags []*UserTagStatistic `json:"tags,omitempty"` Countries []*UserCountryStatistic `json:"countries,omitempty"` VoiceActors []*UserVoiceActorStatistic `json:"voiceActors,omitempty"` Staff []*UserStaffStatistic `json:"staff,omitempty"` Studios []*UserStudioStatistic `json:"studios,omitempty"` } // A user's statistics type UserStats struct { // The amount of anime the user has watched in minutes WatchedTime *int `json:"watchedTime,omitempty"` // The amount of manga chapters the user has read ChaptersRead *int `json:"chaptersRead,omitempty"` ActivityHistory []*UserActivityHistory `json:"activityHistory,omitempty"` AnimeStatusDistribution []*StatusDistribution `json:"animeStatusDistribution,omitempty"` MangaStatusDistribution []*StatusDistribution `json:"mangaStatusDistribution,omitempty"` AnimeScoreDistribution []*ScoreDistribution `json:"animeScoreDistribution,omitempty"` MangaScoreDistribution []*ScoreDistribution `json:"mangaScoreDistribution,omitempty"` AnimeListScores *ListScoreStats `json:"animeListScores,omitempty"` MangaListScores *ListScoreStats `json:"mangaListScores,omitempty"` FavouredGenresOverview []*GenreStats `json:"favouredGenresOverview,omitempty"` FavouredGenres []*GenreStats `json:"favouredGenres,omitempty"` FavouredTags []*TagStats `json:"favouredTags,omitempty"` FavouredActors []*StaffStats `json:"favouredActors,omitempty"` FavouredStaff []*StaffStats `json:"favouredStaff,omitempty"` FavouredStudios []*StudioStats `json:"favouredStudios,omitempty"` FavouredYears []*YearStats `json:"favouredYears,omitempty"` FavouredFormats []*FormatStats `json:"favouredFormats,omitempty"` } type UserStatusStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Status *MediaListStatus `json:"status,omitempty"` } type UserStudioStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Studio *Studio `json:"studio,omitempty"` } type UserTagStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` Tag *MediaTag `json:"tag,omitempty"` } type UserVoiceActorStatistic struct { Count int `json:"count"` MeanScore float64 `json:"meanScore"` MinutesWatched int `json:"minutesWatched"` ChaptersRead int `json:"chaptersRead"` MediaIds []*int `json:"mediaIds"` VoiceActor *Staff `json:"voiceActor,omitempty"` CharacterIds []*int `json:"characterIds"` } // User's year statistics type YearStats struct { Year *int `json:"year,omitempty"` Amount *int `json:"amount,omitempty"` MeanScore *int `json:"meanScore,omitempty"` } // Activity sort enums type ActivitySort string const ( ActivitySortID ActivitySort = "ID" ActivitySortIDDesc ActivitySort = "ID_DESC" ActivitySortPinned ActivitySort = "PINNED" ) var AllActivitySort = []ActivitySort{ ActivitySortID, ActivitySortIDDesc, ActivitySortPinned, } func (e ActivitySort) IsValid() bool { switch e { case ActivitySortID, ActivitySortIDDesc, ActivitySortPinned: return true } return false } func (e ActivitySort) String() string { return string(e) } func (e *ActivitySort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ActivitySort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ActivitySort", str) } return nil } func (e ActivitySort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Activity type enum. type ActivityType string const ( // A text activity ActivityTypeText ActivityType = "TEXT" // A anime list update activity ActivityTypeAnimeList ActivityType = "ANIME_LIST" // A manga list update activity ActivityTypeMangaList ActivityType = "MANGA_LIST" // A text message activity sent to another user ActivityTypeMessage ActivityType = "MESSAGE" // Anime & Manga list update, only used in query arguments ActivityTypeMediaList ActivityType = "MEDIA_LIST" ) var AllActivityType = []ActivityType{ ActivityTypeText, ActivityTypeAnimeList, ActivityTypeMangaList, ActivityTypeMessage, ActivityTypeMediaList, } func (e ActivityType) IsValid() bool { switch e { case ActivityTypeText, ActivityTypeAnimeList, ActivityTypeMangaList, ActivityTypeMessage, ActivityTypeMediaList: return true } return false } func (e ActivityType) String() string { return string(e) } func (e *ActivityType) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ActivityType(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ActivityType", str) } return nil } func (e ActivityType) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Airing schedule sort enums type AiringSort string const ( AiringSortID AiringSort = "ID" AiringSortIDDesc AiringSort = "ID_DESC" AiringSortMediaID AiringSort = "MEDIA_ID" AiringSortMediaIDDesc AiringSort = "MEDIA_ID_DESC" AiringSortTime AiringSort = "TIME" AiringSortTimeDesc AiringSort = "TIME_DESC" AiringSortEpisode AiringSort = "EPISODE" AiringSortEpisodeDesc AiringSort = "EPISODE_DESC" ) var AllAiringSort = []AiringSort{ AiringSortID, AiringSortIDDesc, AiringSortMediaID, AiringSortMediaIDDesc, AiringSortTime, AiringSortTimeDesc, AiringSortEpisode, AiringSortEpisodeDesc, } func (e AiringSort) IsValid() bool { switch e { case AiringSortID, AiringSortIDDesc, AiringSortMediaID, AiringSortMediaIDDesc, AiringSortTime, AiringSortTimeDesc, AiringSortEpisode, AiringSortEpisodeDesc: return true } return false } func (e AiringSort) String() string { return string(e) } func (e *AiringSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = AiringSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid AiringSort", str) } return nil } func (e AiringSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // The role the character plays in the media type CharacterRole string const ( // A primary character role in the media CharacterRoleMain CharacterRole = "MAIN" // A supporting character role in the media CharacterRoleSupporting CharacterRole = "SUPPORTING" // A background character in the media CharacterRoleBackground CharacterRole = "BACKGROUND" ) var AllCharacterRole = []CharacterRole{ CharacterRoleMain, CharacterRoleSupporting, CharacterRoleBackground, } func (e CharacterRole) IsValid() bool { switch e { case CharacterRoleMain, CharacterRoleSupporting, CharacterRoleBackground: return true } return false } func (e CharacterRole) String() string { return string(e) } func (e *CharacterRole) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = CharacterRole(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid CharacterRole", str) } return nil } func (e CharacterRole) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Character sort enums type CharacterSort string const ( CharacterSortID CharacterSort = "ID" CharacterSortIDDesc CharacterSort = "ID_DESC" CharacterSortRole CharacterSort = "ROLE" CharacterSortRoleDesc CharacterSort = "ROLE_DESC" CharacterSortSearchMatch CharacterSort = "SEARCH_MATCH" CharacterSortFavourites CharacterSort = "FAVOURITES" CharacterSortFavouritesDesc CharacterSort = "FAVOURITES_DESC" // Order manually decided by moderators CharacterSortRelevance CharacterSort = "RELEVANCE" ) var AllCharacterSort = []CharacterSort{ CharacterSortID, CharacterSortIDDesc, CharacterSortRole, CharacterSortRoleDesc, CharacterSortSearchMatch, CharacterSortFavourites, CharacterSortFavouritesDesc, CharacterSortRelevance, } func (e CharacterSort) IsValid() bool { switch e { case CharacterSortID, CharacterSortIDDesc, CharacterSortRole, CharacterSortRoleDesc, CharacterSortSearchMatch, CharacterSortFavourites, CharacterSortFavouritesDesc, CharacterSortRelevance: return true } return false } func (e CharacterSort) String() string { return string(e) } func (e *CharacterSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = CharacterSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid CharacterSort", str) } return nil } func (e CharacterSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } type ExternalLinkMediaType string const ( ExternalLinkMediaTypeAnime ExternalLinkMediaType = "ANIME" ExternalLinkMediaTypeManga ExternalLinkMediaType = "MANGA" ExternalLinkMediaTypeStaff ExternalLinkMediaType = "STAFF" ) var AllExternalLinkMediaType = []ExternalLinkMediaType{ ExternalLinkMediaTypeAnime, ExternalLinkMediaTypeManga, ExternalLinkMediaTypeStaff, } func (e ExternalLinkMediaType) IsValid() bool { switch e { case ExternalLinkMediaTypeAnime, ExternalLinkMediaTypeManga, ExternalLinkMediaTypeStaff: return true } return false } func (e ExternalLinkMediaType) String() string { return string(e) } func (e *ExternalLinkMediaType) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ExternalLinkMediaType(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ExternalLinkMediaType", str) } return nil } func (e ExternalLinkMediaType) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } type ExternalLinkType string const ( ExternalLinkTypeInfo ExternalLinkType = "INFO" ExternalLinkTypeStreaming ExternalLinkType = "STREAMING" ExternalLinkTypeSocial ExternalLinkType = "SOCIAL" ) var AllExternalLinkType = []ExternalLinkType{ ExternalLinkTypeInfo, ExternalLinkTypeStreaming, ExternalLinkTypeSocial, } func (e ExternalLinkType) IsValid() bool { switch e { case ExternalLinkTypeInfo, ExternalLinkTypeStreaming, ExternalLinkTypeSocial: return true } return false } func (e ExternalLinkType) String() string { return string(e) } func (e *ExternalLinkType) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ExternalLinkType(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ExternalLinkType", str) } return nil } func (e ExternalLinkType) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Types that can be liked type LikeableType string const ( LikeableTypeThread LikeableType = "THREAD" LikeableTypeThreadComment LikeableType = "THREAD_COMMENT" LikeableTypeActivity LikeableType = "ACTIVITY" LikeableTypeActivityReply LikeableType = "ACTIVITY_REPLY" ) var AllLikeableType = []LikeableType{ LikeableTypeThread, LikeableTypeThreadComment, LikeableTypeActivity, LikeableTypeActivityReply, } func (e LikeableType) IsValid() bool { switch e { case LikeableTypeThread, LikeableTypeThreadComment, LikeableTypeActivity, LikeableTypeActivityReply: return true } return false } func (e LikeableType) String() string { return string(e) } func (e *LikeableType) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = LikeableType(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid LikeableType", str) } return nil } func (e LikeableType) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // The format the media was released in type MediaFormat string const ( // Anime broadcast on television MediaFormatTv MediaFormat = "TV" // Anime which are under 15 minutes in length and broadcast on television MediaFormatTvShort MediaFormat = "TV_SHORT" // Anime movies with a theatrical release MediaFormatMovie MediaFormat = "MOVIE" // Special episodes that have been included in DVD/Blu-ray releases, picture dramas, pilots, etc MediaFormatSpecial MediaFormat = "SPECIAL" // (Original Video Animation) Anime that have been released directly on DVD/Blu-ray without originally going through a theatrical release or television broadcast MediaFormatOva MediaFormat = "OVA" // (Original Net Animation) Anime that have been originally released online or are only available through streaming services. MediaFormatOna MediaFormat = "ONA" // Short anime released as a music video MediaFormatMusic MediaFormat = "MUSIC" // Professionally published manga with more than one chapter MediaFormatManga MediaFormat = "MANGA" // Written books released as a series of light novels MediaFormatNovel MediaFormat = "NOVEL" // Manga with just one chapter MediaFormatOneShot MediaFormat = "ONE_SHOT" ) var AllMediaFormat = []MediaFormat{ MediaFormatTv, MediaFormatTvShort, MediaFormatMovie, MediaFormatSpecial, MediaFormatOva, MediaFormatOna, MediaFormatMusic, MediaFormatManga, MediaFormatNovel, MediaFormatOneShot, } func (e MediaFormat) IsValid() bool { switch e { case MediaFormatTv, MediaFormatTvShort, MediaFormatMovie, MediaFormatSpecial, MediaFormatOva, MediaFormatOna, MediaFormatMusic, MediaFormatManga, MediaFormatNovel, MediaFormatOneShot: return true } return false } func (e MediaFormat) String() string { return string(e) } func (e *MediaFormat) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaFormat(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaFormat", str) } return nil } func (e MediaFormat) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Media list sort enums type MediaListSort string const ( MediaListSortMediaID MediaListSort = "MEDIA_ID" MediaListSortMediaIDDesc MediaListSort = "MEDIA_ID_DESC" MediaListSortScore MediaListSort = "SCORE" MediaListSortScoreDesc MediaListSort = "SCORE_DESC" MediaListSortStatus MediaListSort = "STATUS" MediaListSortStatusDesc MediaListSort = "STATUS_DESC" MediaListSortProgress MediaListSort = "PROGRESS" MediaListSortProgressDesc MediaListSort = "PROGRESS_DESC" MediaListSortProgressVolumes MediaListSort = "PROGRESS_VOLUMES" MediaListSortProgressVolumesDesc MediaListSort = "PROGRESS_VOLUMES_DESC" MediaListSortRepeat MediaListSort = "REPEAT" MediaListSortRepeatDesc MediaListSort = "REPEAT_DESC" MediaListSortPriority MediaListSort = "PRIORITY" MediaListSortPriorityDesc MediaListSort = "PRIORITY_DESC" MediaListSortStartedOn MediaListSort = "STARTED_ON" MediaListSortStartedOnDesc MediaListSort = "STARTED_ON_DESC" MediaListSortFinishedOn MediaListSort = "FINISHED_ON" MediaListSortFinishedOnDesc MediaListSort = "FINISHED_ON_DESC" MediaListSortAddedTime MediaListSort = "ADDED_TIME" MediaListSortAddedTimeDesc MediaListSort = "ADDED_TIME_DESC" MediaListSortUpdatedTime MediaListSort = "UPDATED_TIME" MediaListSortUpdatedTimeDesc MediaListSort = "UPDATED_TIME_DESC" MediaListSortMediaTitleRomaji MediaListSort = "MEDIA_TITLE_ROMAJI" MediaListSortMediaTitleRomajiDesc MediaListSort = "MEDIA_TITLE_ROMAJI_DESC" MediaListSortMediaTitleEnglish MediaListSort = "MEDIA_TITLE_ENGLISH" MediaListSortMediaTitleEnglishDesc MediaListSort = "MEDIA_TITLE_ENGLISH_DESC" MediaListSortMediaTitleNative MediaListSort = "MEDIA_TITLE_NATIVE" MediaListSortMediaTitleNativeDesc MediaListSort = "MEDIA_TITLE_NATIVE_DESC" MediaListSortMediaPopularity MediaListSort = "MEDIA_POPULARITY" MediaListSortMediaPopularityDesc MediaListSort = "MEDIA_POPULARITY_DESC" ) var AllMediaListSort = []MediaListSort{ MediaListSortMediaID, MediaListSortMediaIDDesc, MediaListSortScore, MediaListSortScoreDesc, MediaListSortStatus, MediaListSortStatusDesc, MediaListSortProgress, MediaListSortProgressDesc, MediaListSortProgressVolumes, MediaListSortProgressVolumesDesc, MediaListSortRepeat, MediaListSortRepeatDesc, MediaListSortPriority, MediaListSortPriorityDesc, MediaListSortStartedOn, MediaListSortStartedOnDesc, MediaListSortFinishedOn, MediaListSortFinishedOnDesc, MediaListSortAddedTime, MediaListSortAddedTimeDesc, MediaListSortUpdatedTime, MediaListSortUpdatedTimeDesc, MediaListSortMediaTitleRomaji, MediaListSortMediaTitleRomajiDesc, MediaListSortMediaTitleEnglish, MediaListSortMediaTitleEnglishDesc, MediaListSortMediaTitleNative, MediaListSortMediaTitleNativeDesc, MediaListSortMediaPopularity, MediaListSortMediaPopularityDesc, } func (e MediaListSort) IsValid() bool { switch e { case MediaListSortMediaID, MediaListSortMediaIDDesc, MediaListSortScore, MediaListSortScoreDesc, MediaListSortStatus, MediaListSortStatusDesc, MediaListSortProgress, MediaListSortProgressDesc, MediaListSortProgressVolumes, MediaListSortProgressVolumesDesc, MediaListSortRepeat, MediaListSortRepeatDesc, MediaListSortPriority, MediaListSortPriorityDesc, MediaListSortStartedOn, MediaListSortStartedOnDesc, MediaListSortFinishedOn, MediaListSortFinishedOnDesc, MediaListSortAddedTime, MediaListSortAddedTimeDesc, MediaListSortUpdatedTime, MediaListSortUpdatedTimeDesc, MediaListSortMediaTitleRomaji, MediaListSortMediaTitleRomajiDesc, MediaListSortMediaTitleEnglish, MediaListSortMediaTitleEnglishDesc, MediaListSortMediaTitleNative, MediaListSortMediaTitleNativeDesc, MediaListSortMediaPopularity, MediaListSortMediaPopularityDesc: return true } return false } func (e MediaListSort) String() string { return string(e) } func (e *MediaListSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaListSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaListSort", str) } return nil } func (e MediaListSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Media list watching/reading status enum. type MediaListStatus string const ( // Currently watching/reading MediaListStatusCurrent MediaListStatus = "CURRENT" // Planning to watch/read MediaListStatusPlanning MediaListStatus = "PLANNING" // Finished watching/reading MediaListStatusCompleted MediaListStatus = "COMPLETED" // Stopped watching/reading before completing MediaListStatusDropped MediaListStatus = "DROPPED" // Paused watching/reading MediaListStatusPaused MediaListStatus = "PAUSED" // Re-watching/reading MediaListStatusRepeating MediaListStatus = "REPEATING" ) var AllMediaListStatus = []MediaListStatus{ MediaListStatusCurrent, MediaListStatusPlanning, MediaListStatusCompleted, MediaListStatusDropped, MediaListStatusPaused, MediaListStatusRepeating, } func (e MediaListStatus) IsValid() bool { switch e { case MediaListStatusCurrent, MediaListStatusPlanning, MediaListStatusCompleted, MediaListStatusDropped, MediaListStatusPaused, MediaListStatusRepeating: return true } return false } func (e MediaListStatus) String() string { return string(e) } func (e *MediaListStatus) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaListStatus(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaListStatus", str) } return nil } func (e MediaListStatus) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // The type of ranking type MediaRankType string const ( // Ranking is based on the media's ratings/score MediaRankTypeRated MediaRankType = "RATED" // Ranking is based on the media's popularity MediaRankTypePopular MediaRankType = "POPULAR" ) var AllMediaRankType = []MediaRankType{ MediaRankTypeRated, MediaRankTypePopular, } func (e MediaRankType) IsValid() bool { switch e { case MediaRankTypeRated, MediaRankTypePopular: return true } return false } func (e MediaRankType) String() string { return string(e) } func (e *MediaRankType) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaRankType(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaRankType", str) } return nil } func (e MediaRankType) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Type of relation media has to its parent. type MediaRelation string const ( // An adaption of this media into a different format MediaRelationAdaptation MediaRelation = "ADAPTATION" // Released before the relation MediaRelationPrequel MediaRelation = "PREQUEL" // Released after the relation MediaRelationSequel MediaRelation = "SEQUEL" // The media a side story is from MediaRelationParent MediaRelation = "PARENT" // A side story of the parent media MediaRelationSideStory MediaRelation = "SIDE_STORY" // Shares at least 1 character MediaRelationCharacter MediaRelation = "CHARACTER" // A shortened and summarized version MediaRelationSummary MediaRelation = "SUMMARY" // An alternative version of the same media MediaRelationAlternative MediaRelation = "ALTERNATIVE" // An alternative version of the media with a different primary focus MediaRelationSpinOff MediaRelation = "SPIN_OFF" // Other MediaRelationOther MediaRelation = "OTHER" // Version 2 only. The source material the media was adapted from MediaRelationSource MediaRelation = "SOURCE" // Version 2 only. MediaRelationCompilation MediaRelation = "COMPILATION" // Version 2 only. MediaRelationContains MediaRelation = "CONTAINS" ) var AllMediaRelation = []MediaRelation{ MediaRelationAdaptation, MediaRelationPrequel, MediaRelationSequel, MediaRelationParent, MediaRelationSideStory, MediaRelationCharacter, MediaRelationSummary, MediaRelationAlternative, MediaRelationSpinOff, MediaRelationOther, MediaRelationSource, MediaRelationCompilation, MediaRelationContains, } func (e MediaRelation) IsValid() bool { switch e { case MediaRelationAdaptation, MediaRelationPrequel, MediaRelationSequel, MediaRelationParent, MediaRelationSideStory, MediaRelationCharacter, MediaRelationSummary, MediaRelationAlternative, MediaRelationSpinOff, MediaRelationOther, MediaRelationSource, MediaRelationCompilation, MediaRelationContains: return true } return false } func (e MediaRelation) String() string { return string(e) } func (e *MediaRelation) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaRelation(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaRelation", str) } return nil } func (e MediaRelation) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } type MediaSeason string const ( // Months December to February MediaSeasonWinter MediaSeason = "WINTER" // Months March to May MediaSeasonSpring MediaSeason = "SPRING" // Months June to August MediaSeasonSummer MediaSeason = "SUMMER" // Months September to November MediaSeasonFall MediaSeason = "FALL" ) var AllMediaSeason = []MediaSeason{ MediaSeasonWinter, MediaSeasonSpring, MediaSeasonSummer, MediaSeasonFall, } func (e MediaSeason) IsValid() bool { switch e { case MediaSeasonWinter, MediaSeasonSpring, MediaSeasonSummer, MediaSeasonFall: return true } return false } func (e MediaSeason) String() string { return string(e) } func (e *MediaSeason) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaSeason(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaSeason", str) } return nil } func (e MediaSeason) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Media sort enums type MediaSort string const ( MediaSortID MediaSort = "ID" MediaSortIDDesc MediaSort = "ID_DESC" MediaSortTitleRomaji MediaSort = "TITLE_ROMAJI" MediaSortTitleRomajiDesc MediaSort = "TITLE_ROMAJI_DESC" MediaSortTitleEnglish MediaSort = "TITLE_ENGLISH" MediaSortTitleEnglishDesc MediaSort = "TITLE_ENGLISH_DESC" MediaSortTitleNative MediaSort = "TITLE_NATIVE" MediaSortTitleNativeDesc MediaSort = "TITLE_NATIVE_DESC" MediaSortType MediaSort = "TYPE" MediaSortTypeDesc MediaSort = "TYPE_DESC" MediaSortFormat MediaSort = "FORMAT" MediaSortFormatDesc MediaSort = "FORMAT_DESC" MediaSortStartDate MediaSort = "START_DATE" MediaSortStartDateDesc MediaSort = "START_DATE_DESC" MediaSortEndDate MediaSort = "END_DATE" MediaSortEndDateDesc MediaSort = "END_DATE_DESC" MediaSortScore MediaSort = "SCORE" MediaSortScoreDesc MediaSort = "SCORE_DESC" MediaSortPopularity MediaSort = "POPULARITY" MediaSortPopularityDesc MediaSort = "POPULARITY_DESC" MediaSortTrending MediaSort = "TRENDING" MediaSortTrendingDesc MediaSort = "TRENDING_DESC" MediaSortEpisodes MediaSort = "EPISODES" MediaSortEpisodesDesc MediaSort = "EPISODES_DESC" MediaSortDuration MediaSort = "DURATION" MediaSortDurationDesc MediaSort = "DURATION_DESC" MediaSortStatus MediaSort = "STATUS" MediaSortStatusDesc MediaSort = "STATUS_DESC" MediaSortChapters MediaSort = "CHAPTERS" MediaSortChaptersDesc MediaSort = "CHAPTERS_DESC" MediaSortVolumes MediaSort = "VOLUMES" MediaSortVolumesDesc MediaSort = "VOLUMES_DESC" MediaSortUpdatedAt MediaSort = "UPDATED_AT" MediaSortUpdatedAtDesc MediaSort = "UPDATED_AT_DESC" MediaSortSearchMatch MediaSort = "SEARCH_MATCH" MediaSortFavourites MediaSort = "FAVOURITES" MediaSortFavouritesDesc MediaSort = "FAVOURITES_DESC" ) var AllMediaSort = []MediaSort{ MediaSortID, MediaSortIDDesc, MediaSortTitleRomaji, MediaSortTitleRomajiDesc, MediaSortTitleEnglish, MediaSortTitleEnglishDesc, MediaSortTitleNative, MediaSortTitleNativeDesc, MediaSortType, MediaSortTypeDesc, MediaSortFormat, MediaSortFormatDesc, MediaSortStartDate, MediaSortStartDateDesc, MediaSortEndDate, MediaSortEndDateDesc, MediaSortScore, MediaSortScoreDesc, MediaSortPopularity, MediaSortPopularityDesc, MediaSortTrending, MediaSortTrendingDesc, MediaSortEpisodes, MediaSortEpisodesDesc, MediaSortDuration, MediaSortDurationDesc, MediaSortStatus, MediaSortStatusDesc, MediaSortChapters, MediaSortChaptersDesc, MediaSortVolumes, MediaSortVolumesDesc, MediaSortUpdatedAt, MediaSortUpdatedAtDesc, MediaSortSearchMatch, MediaSortFavourites, MediaSortFavouritesDesc, } func (e MediaSort) IsValid() bool { switch e { case MediaSortID, MediaSortIDDesc, MediaSortTitleRomaji, MediaSortTitleRomajiDesc, MediaSortTitleEnglish, MediaSortTitleEnglishDesc, MediaSortTitleNative, MediaSortTitleNativeDesc, MediaSortType, MediaSortTypeDesc, MediaSortFormat, MediaSortFormatDesc, MediaSortStartDate, MediaSortStartDateDesc, MediaSortEndDate, MediaSortEndDateDesc, MediaSortScore, MediaSortScoreDesc, MediaSortPopularity, MediaSortPopularityDesc, MediaSortTrending, MediaSortTrendingDesc, MediaSortEpisodes, MediaSortEpisodesDesc, MediaSortDuration, MediaSortDurationDesc, MediaSortStatus, MediaSortStatusDesc, MediaSortChapters, MediaSortChaptersDesc, MediaSortVolumes, MediaSortVolumesDesc, MediaSortUpdatedAt, MediaSortUpdatedAtDesc, MediaSortSearchMatch, MediaSortFavourites, MediaSortFavouritesDesc: return true } return false } func (e MediaSort) String() string { return string(e) } func (e *MediaSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaSort", str) } return nil } func (e MediaSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Source type the media was adapted from type MediaSource string const ( // An original production not based of another work MediaSourceOriginal MediaSource = "ORIGINAL" // Asian comic book MediaSourceManga MediaSource = "MANGA" // Written work published in volumes MediaSourceLightNovel MediaSource = "LIGHT_NOVEL" // Video game driven primary by text and narrative MediaSourceVisualNovel MediaSource = "VISUAL_NOVEL" // Video game MediaSourceVideoGame MediaSource = "VIDEO_GAME" // Other MediaSourceOther MediaSource = "OTHER" // Version 2+ only. Written works not published in volumes MediaSourceNovel MediaSource = "NOVEL" // Version 2+ only. Self-published works MediaSourceDoujinshi MediaSource = "DOUJINSHI" // Version 2+ only. Japanese Anime MediaSourceAnime MediaSource = "ANIME" // Version 3 only. Written works published online MediaSourceWebNovel MediaSource = "WEB_NOVEL" // Version 3 only. Live action media such as movies or TV show MediaSourceLiveAction MediaSource = "LIVE_ACTION" // Version 3 only. Games excluding video games MediaSourceGame MediaSource = "GAME" // Version 3 only. Comics excluding manga MediaSourceComic MediaSource = "COMIC" // Version 3 only. Multimedia project MediaSourceMultimediaProject MediaSource = "MULTIMEDIA_PROJECT" // Version 3 only. Picture book MediaSourcePictureBook MediaSource = "PICTURE_BOOK" ) var AllMediaSource = []MediaSource{ MediaSourceOriginal, MediaSourceManga, MediaSourceLightNovel, MediaSourceVisualNovel, MediaSourceVideoGame, MediaSourceOther, MediaSourceNovel, MediaSourceDoujinshi, MediaSourceAnime, MediaSourceWebNovel, MediaSourceLiveAction, MediaSourceGame, MediaSourceComic, MediaSourceMultimediaProject, MediaSourcePictureBook, } func (e MediaSource) IsValid() bool { switch e { case MediaSourceOriginal, MediaSourceManga, MediaSourceLightNovel, MediaSourceVisualNovel, MediaSourceVideoGame, MediaSourceOther, MediaSourceNovel, MediaSourceDoujinshi, MediaSourceAnime, MediaSourceWebNovel, MediaSourceLiveAction, MediaSourceGame, MediaSourceComic, MediaSourceMultimediaProject, MediaSourcePictureBook: return true } return false } func (e MediaSource) String() string { return string(e) } func (e *MediaSource) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaSource(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaSource", str) } return nil } func (e MediaSource) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // The current releasing status of the media type MediaStatus string const ( // Has completed and is no longer being released MediaStatusFinished MediaStatus = "FINISHED" // Currently releasing MediaStatusReleasing MediaStatus = "RELEASING" // To be released at a later date MediaStatusNotYetReleased MediaStatus = "NOT_YET_RELEASED" // Ended before the work could be finished MediaStatusCancelled MediaStatus = "CANCELLED" // Version 2 only. Is currently paused from releasing and will resume at a later date MediaStatusHiatus MediaStatus = "HIATUS" ) var AllMediaStatus = []MediaStatus{ MediaStatusFinished, MediaStatusReleasing, MediaStatusNotYetReleased, MediaStatusCancelled, MediaStatusHiatus, } func (e MediaStatus) IsValid() bool { switch e { case MediaStatusFinished, MediaStatusReleasing, MediaStatusNotYetReleased, MediaStatusCancelled, MediaStatusHiatus: return true } return false } func (e MediaStatus) String() string { return string(e) } func (e *MediaStatus) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaStatus(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaStatus", str) } return nil } func (e MediaStatus) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Media trend sort enums type MediaTrendSort string const ( MediaTrendSortID MediaTrendSort = "ID" MediaTrendSortIDDesc MediaTrendSort = "ID_DESC" MediaTrendSortMediaID MediaTrendSort = "MEDIA_ID" MediaTrendSortMediaIDDesc MediaTrendSort = "MEDIA_ID_DESC" MediaTrendSortDate MediaTrendSort = "DATE" MediaTrendSortDateDesc MediaTrendSort = "DATE_DESC" MediaTrendSortScore MediaTrendSort = "SCORE" MediaTrendSortScoreDesc MediaTrendSort = "SCORE_DESC" MediaTrendSortPopularity MediaTrendSort = "POPULARITY" MediaTrendSortPopularityDesc MediaTrendSort = "POPULARITY_DESC" MediaTrendSortTrending MediaTrendSort = "TRENDING" MediaTrendSortTrendingDesc MediaTrendSort = "TRENDING_DESC" MediaTrendSortEpisode MediaTrendSort = "EPISODE" MediaTrendSortEpisodeDesc MediaTrendSort = "EPISODE_DESC" ) var AllMediaTrendSort = []MediaTrendSort{ MediaTrendSortID, MediaTrendSortIDDesc, MediaTrendSortMediaID, MediaTrendSortMediaIDDesc, MediaTrendSortDate, MediaTrendSortDateDesc, MediaTrendSortScore, MediaTrendSortScoreDesc, MediaTrendSortPopularity, MediaTrendSortPopularityDesc, MediaTrendSortTrending, MediaTrendSortTrendingDesc, MediaTrendSortEpisode, MediaTrendSortEpisodeDesc, } func (e MediaTrendSort) IsValid() bool { switch e { case MediaTrendSortID, MediaTrendSortIDDesc, MediaTrendSortMediaID, MediaTrendSortMediaIDDesc, MediaTrendSortDate, MediaTrendSortDateDesc, MediaTrendSortScore, MediaTrendSortScoreDesc, MediaTrendSortPopularity, MediaTrendSortPopularityDesc, MediaTrendSortTrending, MediaTrendSortTrendingDesc, MediaTrendSortEpisode, MediaTrendSortEpisodeDesc: return true } return false } func (e MediaTrendSort) String() string { return string(e) } func (e *MediaTrendSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaTrendSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaTrendSort", str) } return nil } func (e MediaTrendSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Media type enum, anime or manga. type MediaType string const ( // Japanese Anime MediaTypeAnime MediaType = "ANIME" // Asian comic MediaTypeManga MediaType = "MANGA" ) var AllMediaType = []MediaType{ MediaTypeAnime, MediaTypeManga, } func (e MediaType) IsValid() bool { switch e { case MediaTypeAnime, MediaTypeManga: return true } return false } func (e MediaType) String() string { return string(e) } func (e *MediaType) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = MediaType(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid MediaType", str) } return nil } func (e MediaType) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } type ModActionType string const ( ModActionTypeNote ModActionType = "NOTE" ModActionTypeBan ModActionType = "BAN" ModActionTypeDelete ModActionType = "DELETE" ModActionTypeEdit ModActionType = "EDIT" ModActionTypeExpire ModActionType = "EXPIRE" ModActionTypeReport ModActionType = "REPORT" ModActionTypeReset ModActionType = "RESET" ModActionTypeAnon ModActionType = "ANON" ) var AllModActionType = []ModActionType{ ModActionTypeNote, ModActionTypeBan, ModActionTypeDelete, ModActionTypeEdit, ModActionTypeExpire, ModActionTypeReport, ModActionTypeReset, ModActionTypeAnon, } func (e ModActionType) IsValid() bool { switch e { case ModActionTypeNote, ModActionTypeBan, ModActionTypeDelete, ModActionTypeEdit, ModActionTypeExpire, ModActionTypeReport, ModActionTypeReset, ModActionTypeAnon: return true } return false } func (e ModActionType) String() string { return string(e) } func (e *ModActionType) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ModActionType(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ModActionType", str) } return nil } func (e ModActionType) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Mod role enums type ModRole string const ( // An AniList administrator ModRoleAdmin ModRole = "ADMIN" // A head developer of AniList ModRoleLeadDeveloper ModRole = "LEAD_DEVELOPER" // An AniList developer ModRoleDeveloper ModRole = "DEVELOPER" // A lead community moderator ModRoleLeadCommunity ModRole = "LEAD_COMMUNITY" // A community moderator ModRoleCommunity ModRole = "COMMUNITY" // A discord community moderator ModRoleDiscordCommunity ModRole = "DISCORD_COMMUNITY" // A lead anime data moderator ModRoleLeadAnimeData ModRole = "LEAD_ANIME_DATA" // An anime data moderator ModRoleAnimeData ModRole = "ANIME_DATA" // A lead manga data moderator ModRoleLeadMangaData ModRole = "LEAD_MANGA_DATA" // A manga data moderator ModRoleMangaData ModRole = "MANGA_DATA" // A lead social media moderator ModRoleLeadSocialMedia ModRole = "LEAD_SOCIAL_MEDIA" // A social media moderator ModRoleSocialMedia ModRole = "SOCIAL_MEDIA" // A retired moderator ModRoleRetired ModRole = "RETIRED" // A character data moderator ModRoleCharacterData ModRole = "CHARACTER_DATA" // A staff data moderator ModRoleStaffData ModRole = "STAFF_DATA" ) var AllModRole = []ModRole{ ModRoleAdmin, ModRoleLeadDeveloper, ModRoleDeveloper, ModRoleLeadCommunity, ModRoleCommunity, ModRoleDiscordCommunity, ModRoleLeadAnimeData, ModRoleAnimeData, ModRoleLeadMangaData, ModRoleMangaData, ModRoleLeadSocialMedia, ModRoleSocialMedia, ModRoleRetired, ModRoleCharacterData, ModRoleStaffData, } func (e ModRole) IsValid() bool { switch e { case ModRoleAdmin, ModRoleLeadDeveloper, ModRoleDeveloper, ModRoleLeadCommunity, ModRoleCommunity, ModRoleDiscordCommunity, ModRoleLeadAnimeData, ModRoleAnimeData, ModRoleLeadMangaData, ModRoleMangaData, ModRoleLeadSocialMedia, ModRoleSocialMedia, ModRoleRetired, ModRoleCharacterData, ModRoleStaffData: return true } return false } func (e ModRole) String() string { return string(e) } func (e *ModRole) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ModRole(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ModRole", str) } return nil } func (e ModRole) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Notification type enum type NotificationType string const ( // A user has sent you message NotificationTypeActivityMessage NotificationType = "ACTIVITY_MESSAGE" // A user has replied to your activity NotificationTypeActivityReply NotificationType = "ACTIVITY_REPLY" // A user has followed you NotificationTypeFollowing NotificationType = "FOLLOWING" // A user has mentioned you in their activity NotificationTypeActivityMention NotificationType = "ACTIVITY_MENTION" // A user has mentioned you in a forum comment NotificationTypeThreadCommentMention NotificationType = "THREAD_COMMENT_MENTION" // A user has commented in one of your subscribed forum threads NotificationTypeThreadSubscribed NotificationType = "THREAD_SUBSCRIBED" // A user has replied to your forum comment NotificationTypeThreadCommentReply NotificationType = "THREAD_COMMENT_REPLY" // An anime you are currently watching has aired NotificationTypeAiring NotificationType = "AIRING" // A user has liked your activity NotificationTypeActivityLike NotificationType = "ACTIVITY_LIKE" // A user has liked your activity reply NotificationTypeActivityReplyLike NotificationType = "ACTIVITY_REPLY_LIKE" // A user has liked your forum thread NotificationTypeThreadLike NotificationType = "THREAD_LIKE" // A user has liked your forum comment NotificationTypeThreadCommentLike NotificationType = "THREAD_COMMENT_LIKE" // A user has replied to activity you have also replied to NotificationTypeActivityReplySubscribed NotificationType = "ACTIVITY_REPLY_SUBSCRIBED" // A new anime or manga has been added to the site where its related media is on the user's list NotificationTypeRelatedMediaAddition NotificationType = "RELATED_MEDIA_ADDITION" // An anime or manga has had a data change that affects how a user may track it in their lists NotificationTypeMediaDataChange NotificationType = "MEDIA_DATA_CHANGE" // Anime or manga entries on the user's list have been merged into a single entry NotificationTypeMediaMerge NotificationType = "MEDIA_MERGE" // An anime or manga on the user's list has been deleted from the site NotificationTypeMediaDeletion NotificationType = "MEDIA_DELETION" ) var AllNotificationType = []NotificationType{ NotificationTypeActivityMessage, NotificationTypeActivityReply, NotificationTypeFollowing, NotificationTypeActivityMention, NotificationTypeThreadCommentMention, NotificationTypeThreadSubscribed, NotificationTypeThreadCommentReply, NotificationTypeAiring, NotificationTypeActivityLike, NotificationTypeActivityReplyLike, NotificationTypeThreadLike, NotificationTypeThreadCommentLike, NotificationTypeActivityReplySubscribed, NotificationTypeRelatedMediaAddition, NotificationTypeMediaDataChange, NotificationTypeMediaMerge, NotificationTypeMediaDeletion, } func (e NotificationType) IsValid() bool { switch e { case NotificationTypeActivityMessage, NotificationTypeActivityReply, NotificationTypeFollowing, NotificationTypeActivityMention, NotificationTypeThreadCommentMention, NotificationTypeThreadSubscribed, NotificationTypeThreadCommentReply, NotificationTypeAiring, NotificationTypeActivityLike, NotificationTypeActivityReplyLike, NotificationTypeThreadLike, NotificationTypeThreadCommentLike, NotificationTypeActivityReplySubscribed, NotificationTypeRelatedMediaAddition, NotificationTypeMediaDataChange, NotificationTypeMediaMerge, NotificationTypeMediaDeletion: return true } return false } func (e NotificationType) String() string { return string(e) } func (e *NotificationType) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = NotificationType(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid NotificationType", str) } return nil } func (e NotificationType) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Recommendation rating enums type RecommendationRating string const ( RecommendationRatingNoRating RecommendationRating = "NO_RATING" RecommendationRatingRateUp RecommendationRating = "RATE_UP" RecommendationRatingRateDown RecommendationRating = "RATE_DOWN" ) var AllRecommendationRating = []RecommendationRating{ RecommendationRatingNoRating, RecommendationRatingRateUp, RecommendationRatingRateDown, } func (e RecommendationRating) IsValid() bool { switch e { case RecommendationRatingNoRating, RecommendationRatingRateUp, RecommendationRatingRateDown: return true } return false } func (e RecommendationRating) String() string { return string(e) } func (e *RecommendationRating) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = RecommendationRating(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid RecommendationRating", str) } return nil } func (e RecommendationRating) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Recommendation sort enums type RecommendationSort string const ( RecommendationSortID RecommendationSort = "ID" RecommendationSortIDDesc RecommendationSort = "ID_DESC" RecommendationSortRating RecommendationSort = "RATING" RecommendationSortRatingDesc RecommendationSort = "RATING_DESC" ) var AllRecommendationSort = []RecommendationSort{ RecommendationSortID, RecommendationSortIDDesc, RecommendationSortRating, RecommendationSortRatingDesc, } func (e RecommendationSort) IsValid() bool { switch e { case RecommendationSortID, RecommendationSortIDDesc, RecommendationSortRating, RecommendationSortRatingDesc: return true } return false } func (e RecommendationSort) String() string { return string(e) } func (e *RecommendationSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = RecommendationSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid RecommendationSort", str) } return nil } func (e RecommendationSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Review rating enums type ReviewRating string const ( ReviewRatingNoVote ReviewRating = "NO_VOTE" ReviewRatingUpVote ReviewRating = "UP_VOTE" ReviewRatingDownVote ReviewRating = "DOWN_VOTE" ) var AllReviewRating = []ReviewRating{ ReviewRatingNoVote, ReviewRatingUpVote, ReviewRatingDownVote, } func (e ReviewRating) IsValid() bool { switch e { case ReviewRatingNoVote, ReviewRatingUpVote, ReviewRatingDownVote: return true } return false } func (e ReviewRating) String() string { return string(e) } func (e *ReviewRating) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ReviewRating(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ReviewRating", str) } return nil } func (e ReviewRating) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Review sort enums type ReviewSort string const ( ReviewSortID ReviewSort = "ID" ReviewSortIDDesc ReviewSort = "ID_DESC" ReviewSortScore ReviewSort = "SCORE" ReviewSortScoreDesc ReviewSort = "SCORE_DESC" ReviewSortRating ReviewSort = "RATING" ReviewSortRatingDesc ReviewSort = "RATING_DESC" ReviewSortCreatedAt ReviewSort = "CREATED_AT" ReviewSortCreatedAtDesc ReviewSort = "CREATED_AT_DESC" ReviewSortUpdatedAt ReviewSort = "UPDATED_AT" ReviewSortUpdatedAtDesc ReviewSort = "UPDATED_AT_DESC" ) var AllReviewSort = []ReviewSort{ ReviewSortID, ReviewSortIDDesc, ReviewSortScore, ReviewSortScoreDesc, ReviewSortRating, ReviewSortRatingDesc, ReviewSortCreatedAt, ReviewSortCreatedAtDesc, ReviewSortUpdatedAt, ReviewSortUpdatedAtDesc, } func (e ReviewSort) IsValid() bool { switch e { case ReviewSortID, ReviewSortIDDesc, ReviewSortScore, ReviewSortScoreDesc, ReviewSortRating, ReviewSortRatingDesc, ReviewSortCreatedAt, ReviewSortCreatedAtDesc, ReviewSortUpdatedAt, ReviewSortUpdatedAtDesc: return true } return false } func (e ReviewSort) String() string { return string(e) } func (e *ReviewSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ReviewSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ReviewSort", str) } return nil } func (e ReviewSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Revision history actions type RevisionHistoryAction string const ( RevisionHistoryActionCreate RevisionHistoryAction = "CREATE" RevisionHistoryActionEdit RevisionHistoryAction = "EDIT" ) var AllRevisionHistoryAction = []RevisionHistoryAction{ RevisionHistoryActionCreate, RevisionHistoryActionEdit, } func (e RevisionHistoryAction) IsValid() bool { switch e { case RevisionHistoryActionCreate, RevisionHistoryActionEdit: return true } return false } func (e RevisionHistoryAction) String() string { return string(e) } func (e *RevisionHistoryAction) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = RevisionHistoryAction(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid RevisionHistoryAction", str) } return nil } func (e RevisionHistoryAction) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Media list scoring type type ScoreFormat string const ( // An integer from 0-100 ScoreFormatPoint100 ScoreFormat = "POINT_100" // A float from 0-10 with 1 decimal place ScoreFormatPoint10Decimal ScoreFormat = "POINT_10_DECIMAL" // An integer from 0-10 ScoreFormatPoint10 ScoreFormat = "POINT_10" // An integer from 0-5. Should be represented in Stars ScoreFormatPoint5 ScoreFormat = "POINT_5" // An integer from 0-3. Should be represented in Smileys. 0 => No Score, 1 => :(, 2 => :|, 3 => :) ScoreFormatPoint3 ScoreFormat = "POINT_3" ) var AllScoreFormat = []ScoreFormat{ ScoreFormatPoint100, ScoreFormatPoint10Decimal, ScoreFormatPoint10, ScoreFormatPoint5, ScoreFormatPoint3, } func (e ScoreFormat) IsValid() bool { switch e { case ScoreFormatPoint100, ScoreFormatPoint10Decimal, ScoreFormatPoint10, ScoreFormatPoint5, ScoreFormatPoint3: return true } return false } func (e ScoreFormat) String() string { return string(e) } func (e *ScoreFormat) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ScoreFormat(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ScoreFormat", str) } return nil } func (e ScoreFormat) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Site trend sort enums type SiteTrendSort string const ( SiteTrendSortDate SiteTrendSort = "DATE" SiteTrendSortDateDesc SiteTrendSort = "DATE_DESC" SiteTrendSortCount SiteTrendSort = "COUNT" SiteTrendSortCountDesc SiteTrendSort = "COUNT_DESC" SiteTrendSortChange SiteTrendSort = "CHANGE" SiteTrendSortChangeDesc SiteTrendSort = "CHANGE_DESC" ) var AllSiteTrendSort = []SiteTrendSort{ SiteTrendSortDate, SiteTrendSortDateDesc, SiteTrendSortCount, SiteTrendSortCountDesc, SiteTrendSortChange, SiteTrendSortChangeDesc, } func (e SiteTrendSort) IsValid() bool { switch e { case SiteTrendSortDate, SiteTrendSortDateDesc, SiteTrendSortCount, SiteTrendSortCountDesc, SiteTrendSortChange, SiteTrendSortChangeDesc: return true } return false } func (e SiteTrendSort) String() string { return string(e) } func (e *SiteTrendSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = SiteTrendSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid SiteTrendSort", str) } return nil } func (e SiteTrendSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // The primary language of the voice actor type StaffLanguage string const ( // Japanese StaffLanguageJapanese StaffLanguage = "JAPANESE" // English StaffLanguageEnglish StaffLanguage = "ENGLISH" // Korean StaffLanguageKorean StaffLanguage = "KOREAN" // Italian StaffLanguageItalian StaffLanguage = "ITALIAN" // Spanish StaffLanguageSpanish StaffLanguage = "SPANISH" // Portuguese StaffLanguagePortuguese StaffLanguage = "PORTUGUESE" // French StaffLanguageFrench StaffLanguage = "FRENCH" // German StaffLanguageGerman StaffLanguage = "GERMAN" // Hebrew StaffLanguageHebrew StaffLanguage = "HEBREW" // Hungarian StaffLanguageHungarian StaffLanguage = "HUNGARIAN" ) var AllStaffLanguage = []StaffLanguage{ StaffLanguageJapanese, StaffLanguageEnglish, StaffLanguageKorean, StaffLanguageItalian, StaffLanguageSpanish, StaffLanguagePortuguese, StaffLanguageFrench, StaffLanguageGerman, StaffLanguageHebrew, StaffLanguageHungarian, } func (e StaffLanguage) IsValid() bool { switch e { case StaffLanguageJapanese, StaffLanguageEnglish, StaffLanguageKorean, StaffLanguageItalian, StaffLanguageSpanish, StaffLanguagePortuguese, StaffLanguageFrench, StaffLanguageGerman, StaffLanguageHebrew, StaffLanguageHungarian: return true } return false } func (e StaffLanguage) String() string { return string(e) } func (e *StaffLanguage) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = StaffLanguage(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid StaffLanguage", str) } return nil } func (e StaffLanguage) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Staff sort enums type StaffSort string const ( StaffSortID StaffSort = "ID" StaffSortIDDesc StaffSort = "ID_DESC" StaffSortRole StaffSort = "ROLE" StaffSortRoleDesc StaffSort = "ROLE_DESC" StaffSortLanguage StaffSort = "LANGUAGE" StaffSortLanguageDesc StaffSort = "LANGUAGE_DESC" StaffSortSearchMatch StaffSort = "SEARCH_MATCH" StaffSortFavourites StaffSort = "FAVOURITES" StaffSortFavouritesDesc StaffSort = "FAVOURITES_DESC" // Order manually decided by moderators StaffSortRelevance StaffSort = "RELEVANCE" ) var AllStaffSort = []StaffSort{ StaffSortID, StaffSortIDDesc, StaffSortRole, StaffSortRoleDesc, StaffSortLanguage, StaffSortLanguageDesc, StaffSortSearchMatch, StaffSortFavourites, StaffSortFavouritesDesc, StaffSortRelevance, } func (e StaffSort) IsValid() bool { switch e { case StaffSortID, StaffSortIDDesc, StaffSortRole, StaffSortRoleDesc, StaffSortLanguage, StaffSortLanguageDesc, StaffSortSearchMatch, StaffSortFavourites, StaffSortFavouritesDesc, StaffSortRelevance: return true } return false } func (e StaffSort) String() string { return string(e) } func (e *StaffSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = StaffSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid StaffSort", str) } return nil } func (e StaffSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Studio sort enums type StudioSort string const ( StudioSortID StudioSort = "ID" StudioSortIDDesc StudioSort = "ID_DESC" StudioSortName StudioSort = "NAME" StudioSortNameDesc StudioSort = "NAME_DESC" StudioSortSearchMatch StudioSort = "SEARCH_MATCH" StudioSortFavourites StudioSort = "FAVOURITES" StudioSortFavouritesDesc StudioSort = "FAVOURITES_DESC" ) var AllStudioSort = []StudioSort{ StudioSortID, StudioSortIDDesc, StudioSortName, StudioSortNameDesc, StudioSortSearchMatch, StudioSortFavourites, StudioSortFavouritesDesc, } func (e StudioSort) IsValid() bool { switch e { case StudioSortID, StudioSortIDDesc, StudioSortName, StudioSortNameDesc, StudioSortSearchMatch, StudioSortFavourites, StudioSortFavouritesDesc: return true } return false } func (e StudioSort) String() string { return string(e) } func (e *StudioSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = StudioSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid StudioSort", str) } return nil } func (e StudioSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Submission sort enums type SubmissionSort string const ( SubmissionSortID SubmissionSort = "ID" SubmissionSortIDDesc SubmissionSort = "ID_DESC" ) var AllSubmissionSort = []SubmissionSort{ SubmissionSortID, SubmissionSortIDDesc, } func (e SubmissionSort) IsValid() bool { switch e { case SubmissionSortID, SubmissionSortIDDesc: return true } return false } func (e SubmissionSort) String() string { return string(e) } func (e *SubmissionSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = SubmissionSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid SubmissionSort", str) } return nil } func (e SubmissionSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Submission status type SubmissionStatus string const ( SubmissionStatusPending SubmissionStatus = "PENDING" SubmissionStatusRejected SubmissionStatus = "REJECTED" SubmissionStatusPartiallyAccepted SubmissionStatus = "PARTIALLY_ACCEPTED" SubmissionStatusAccepted SubmissionStatus = "ACCEPTED" ) var AllSubmissionStatus = []SubmissionStatus{ SubmissionStatusPending, SubmissionStatusRejected, SubmissionStatusPartiallyAccepted, SubmissionStatusAccepted, } func (e SubmissionStatus) IsValid() bool { switch e { case SubmissionStatusPending, SubmissionStatusRejected, SubmissionStatusPartiallyAccepted, SubmissionStatusAccepted: return true } return false } func (e SubmissionStatus) String() string { return string(e) } func (e *SubmissionStatus) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = SubmissionStatus(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid SubmissionStatus", str) } return nil } func (e SubmissionStatus) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Thread comments sort enums type ThreadCommentSort string const ( ThreadCommentSortID ThreadCommentSort = "ID" ThreadCommentSortIDDesc ThreadCommentSort = "ID_DESC" ) var AllThreadCommentSort = []ThreadCommentSort{ ThreadCommentSortID, ThreadCommentSortIDDesc, } func (e ThreadCommentSort) IsValid() bool { switch e { case ThreadCommentSortID, ThreadCommentSortIDDesc: return true } return false } func (e ThreadCommentSort) String() string { return string(e) } func (e *ThreadCommentSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ThreadCommentSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ThreadCommentSort", str) } return nil } func (e ThreadCommentSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // Thread sort enums type ThreadSort string const ( ThreadSortID ThreadSort = "ID" ThreadSortIDDesc ThreadSort = "ID_DESC" ThreadSortTitle ThreadSort = "TITLE" ThreadSortTitleDesc ThreadSort = "TITLE_DESC" ThreadSortCreatedAt ThreadSort = "CREATED_AT" ThreadSortCreatedAtDesc ThreadSort = "CREATED_AT_DESC" ThreadSortUpdatedAt ThreadSort = "UPDATED_AT" ThreadSortUpdatedAtDesc ThreadSort = "UPDATED_AT_DESC" ThreadSortRepliedAt ThreadSort = "REPLIED_AT" ThreadSortRepliedAtDesc ThreadSort = "REPLIED_AT_DESC" ThreadSortReplyCount ThreadSort = "REPLY_COUNT" ThreadSortReplyCountDesc ThreadSort = "REPLY_COUNT_DESC" ThreadSortViewCount ThreadSort = "VIEW_COUNT" ThreadSortViewCountDesc ThreadSort = "VIEW_COUNT_DESC" ThreadSortIsSticky ThreadSort = "IS_STICKY" ThreadSortSearchMatch ThreadSort = "SEARCH_MATCH" ) var AllThreadSort = []ThreadSort{ ThreadSortID, ThreadSortIDDesc, ThreadSortTitle, ThreadSortTitleDesc, ThreadSortCreatedAt, ThreadSortCreatedAtDesc, ThreadSortUpdatedAt, ThreadSortUpdatedAtDesc, ThreadSortRepliedAt, ThreadSortRepliedAtDesc, ThreadSortReplyCount, ThreadSortReplyCountDesc, ThreadSortViewCount, ThreadSortViewCountDesc, ThreadSortIsSticky, ThreadSortSearchMatch, } func (e ThreadSort) IsValid() bool { switch e { case ThreadSortID, ThreadSortIDDesc, ThreadSortTitle, ThreadSortTitleDesc, ThreadSortCreatedAt, ThreadSortCreatedAtDesc, ThreadSortUpdatedAt, ThreadSortUpdatedAtDesc, ThreadSortRepliedAt, ThreadSortRepliedAtDesc, ThreadSortReplyCount, ThreadSortReplyCountDesc, ThreadSortViewCount, ThreadSortViewCountDesc, ThreadSortIsSticky, ThreadSortSearchMatch: return true } return false } func (e ThreadSort) String() string { return string(e) } func (e *ThreadSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = ThreadSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid ThreadSort", str) } return nil } func (e ThreadSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // User sort enums type UserSort string const ( UserSortID UserSort = "ID" UserSortIDDesc UserSort = "ID_DESC" UserSortUsername UserSort = "USERNAME" UserSortUsernameDesc UserSort = "USERNAME_DESC" UserSortWatchedTime UserSort = "WATCHED_TIME" UserSortWatchedTimeDesc UserSort = "WATCHED_TIME_DESC" UserSortChaptersRead UserSort = "CHAPTERS_READ" UserSortChaptersReadDesc UserSort = "CHAPTERS_READ_DESC" UserSortSearchMatch UserSort = "SEARCH_MATCH" ) var AllUserSort = []UserSort{ UserSortID, UserSortIDDesc, UserSortUsername, UserSortUsernameDesc, UserSortWatchedTime, UserSortWatchedTimeDesc, UserSortChaptersRead, UserSortChaptersReadDesc, UserSortSearchMatch, } func (e UserSort) IsValid() bool { switch e { case UserSortID, UserSortIDDesc, UserSortUsername, UserSortUsernameDesc, UserSortWatchedTime, UserSortWatchedTimeDesc, UserSortChaptersRead, UserSortChaptersReadDesc, UserSortSearchMatch: return true } return false } func (e UserSort) String() string { return string(e) } func (e *UserSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = UserSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid UserSort", str) } return nil } func (e UserSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // The language the user wants to see staff and character names in type UserStaffNameLanguage string const ( // The romanization of the staff or character's native name, with western name ordering UserStaffNameLanguageRomajiWestern UserStaffNameLanguage = "ROMAJI_WESTERN" // The romanization of the staff or character's native name UserStaffNameLanguageRomaji UserStaffNameLanguage = "ROMAJI" // The staff or character's name in their native language UserStaffNameLanguageNative UserStaffNameLanguage = "NATIVE" ) var AllUserStaffNameLanguage = []UserStaffNameLanguage{ UserStaffNameLanguageRomajiWestern, UserStaffNameLanguageRomaji, UserStaffNameLanguageNative, } func (e UserStaffNameLanguage) IsValid() bool { switch e { case UserStaffNameLanguageRomajiWestern, UserStaffNameLanguageRomaji, UserStaffNameLanguageNative: return true } return false } func (e UserStaffNameLanguage) String() string { return string(e) } func (e *UserStaffNameLanguage) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = UserStaffNameLanguage(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid UserStaffNameLanguage", str) } return nil } func (e UserStaffNameLanguage) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // User statistics sort enum type UserStatisticsSort string const ( UserStatisticsSortID UserStatisticsSort = "ID" UserStatisticsSortIDDesc UserStatisticsSort = "ID_DESC" UserStatisticsSortCount UserStatisticsSort = "COUNT" UserStatisticsSortCountDesc UserStatisticsSort = "COUNT_DESC" UserStatisticsSortProgress UserStatisticsSort = "PROGRESS" UserStatisticsSortProgressDesc UserStatisticsSort = "PROGRESS_DESC" UserStatisticsSortMeanScore UserStatisticsSort = "MEAN_SCORE" UserStatisticsSortMeanScoreDesc UserStatisticsSort = "MEAN_SCORE_DESC" ) var AllUserStatisticsSort = []UserStatisticsSort{ UserStatisticsSortID, UserStatisticsSortIDDesc, UserStatisticsSortCount, UserStatisticsSortCountDesc, UserStatisticsSortProgress, UserStatisticsSortProgressDesc, UserStatisticsSortMeanScore, UserStatisticsSortMeanScoreDesc, } func (e UserStatisticsSort) IsValid() bool { switch e { case UserStatisticsSortID, UserStatisticsSortIDDesc, UserStatisticsSortCount, UserStatisticsSortCountDesc, UserStatisticsSortProgress, UserStatisticsSortProgressDesc, UserStatisticsSortMeanScore, UserStatisticsSortMeanScoreDesc: return true } return false } func (e UserStatisticsSort) String() string { return string(e) } func (e *UserStatisticsSort) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = UserStatisticsSort(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid UserStatisticsSort", str) } return nil } func (e UserStatisticsSort) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } // The language the user wants to see media titles in type UserTitleLanguage string const ( // The romanization of the native language title UserTitleLanguageRomaji UserTitleLanguage = "ROMAJI" // The official english title UserTitleLanguageEnglish UserTitleLanguage = "ENGLISH" // Official title in it's native language UserTitleLanguageNative UserTitleLanguage = "NATIVE" // The romanization of the native language title, stylised by media creator UserTitleLanguageRomajiStylised UserTitleLanguage = "ROMAJI_STYLISED" // The official english title, stylised by media creator UserTitleLanguageEnglishStylised UserTitleLanguage = "ENGLISH_STYLISED" // Official title in it's native language, stylised by media creator UserTitleLanguageNativeStylised UserTitleLanguage = "NATIVE_STYLISED" ) var AllUserTitleLanguage = []UserTitleLanguage{ UserTitleLanguageRomaji, UserTitleLanguageEnglish, UserTitleLanguageNative, UserTitleLanguageRomajiStylised, UserTitleLanguageEnglishStylised, UserTitleLanguageNativeStylised, } func (e UserTitleLanguage) IsValid() bool { switch e { case UserTitleLanguageRomaji, UserTitleLanguageEnglish, UserTitleLanguageNative, UserTitleLanguageRomajiStylised, UserTitleLanguageEnglishStylised, UserTitleLanguageNativeStylised: return true } return false } func (e UserTitleLanguage) String() string { return string(e) } func (e *UserTitleLanguage) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = UserTitleLanguage(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid UserTitleLanguage", str) } return nil } func (e UserTitleLanguage) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) }