From 64def1a763bfdd7a5ae6189df50d5eab7fe9a4b8 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Wed, 24 Jul 2024 09:16:13 -0400 Subject: [PATCH] separated our current watchlist types --- .../types/AniListCurrentUserWatchListType.ts | 88 ++++++++++++++ frontend/src/anilist/types/AniListTypes.ts | 113 +++++------------- 2 files changed, 120 insertions(+), 81 deletions(-) diff --git a/frontend/src/anilist/types/AniListCurrentUserWatchListType.ts b/frontend/src/anilist/types/AniListCurrentUserWatchListType.ts index e69de29..2e44f4d 100644 --- a/frontend/src/anilist/types/AniListCurrentUserWatchListType.ts +++ b/frontend/src/anilist/types/AniListCurrentUserWatchListType.ts @@ -0,0 +1,88 @@ +export interface AniListCurrentUserWatchList { + data: Data +} + +export interface Data { + Page: Page +} + +export interface Page { + pageInfo: PageInfo + mediaList: MediaList[] +} + +export interface PageInfo { + total: number + perPage: number + currentPage: number + lastPage: number + hasNextPage: boolean +} + +export interface MediaList { + id: number + mediaId: number + userId: number + media: Media + status: string + notes?: string + progress: number + score: number + repeat: number + user: User +} + +export interface Media { + id: number + idMal: number + title: Title + description: string + coverImage: CoverImage + season: string + seasonYear: number + status: string + episodes?: number + nextAiringEpisode?: NextAiringEpisode +} + +export interface Title { + romaji: string + english?: string + native: string +} + +export interface CoverImage { + large: string +} + +export interface NextAiringEpisode { + airingAt: number + timeUntilAiring: number + episode: number +} + +export interface User { + id: number + name: string + avatar: Avatar + statistics: Statistics +} + +export interface Avatar { + large: string + medium: string +} + +export interface Statistics { + anime: Anime +} + +export interface Anime { + count: number + statuses: Status[] +} + +export interface Status { + status: string + count: number +} diff --git a/frontend/src/anilist/types/AniListTypes.ts b/frontend/src/anilist/types/AniListTypes.ts index d441ddc..ac06ea6 100644 --- a/frontend/src/anilist/types/AniListTypes.ts +++ b/frontend/src/anilist/types/AniListTypes.ts @@ -64,84 +64,35 @@ export interface AniListUser { } } -export interface AniListCurrentUserWatchList { - data: Data; -} - -export interface Data { - Page: Page; -} - -export interface Page { - pageInfo: PageInfo; - mediaList: MediaList[]; -} - -export interface MediaList { - id: number; - mediaId: number; - userId: number; - media: Media; - status: StatusEnum; - notes: string | null; - progress: number; - score: number; - repeat: number; - user: User; -} - -export interface Media { - id: number; - idMal: number; - title: Title; - description: string; - coverImage: CoverImage; - season: string; - seasonYear: number; - episodes: number; -} - -export interface CoverImage { - large: string; -} - -export interface Title { - romaji: string | null; - english: string | null; - native: string; -} - -export enum StatusEnum { - Completed = "COMPLETED", - Current = "CURRENT", - Dropped = "DROPPED", - Planning = "PLANNING", - Repeating = "REPEATING", -} - -export interface User { - id: number; - statistics: Statistics; -} - -export interface Statistics { - anime: Anime; -} - -export interface Anime { - count: number; - statuses: StatusElement[]; -} - -export interface StatusElement { - status: StatusEnum; - count: number; -} - -export interface PageInfo { - total: number; - perPage: number; - currentPage: number; - lastPage: number; - hasNextPage: boolean; -} +export enum MediaListSort { + MediaId = "MEDIA_ID", + MediaIdDesc = "MEDIA_ID_DESC", + Score = "SCORE", + ScoreDesc = "SCORE_DESC", + Status = "STATUS", + StatusDesc = "STATUS_DESC", + Progress = "PROGRESS", + ProgressDesc = "PROGRESS_DESC", + ProgressVolumes = "PROGRESS_VOLUMES", + ProgressVolumesDesc = "PROGRESS_VOLUMES_DESC", + Repeat = "REPEAT", + RepeatDesc = "REPEAT_DESC", + Priority = "PRIORITY", + PriorityDesc = "PRIORITY_DESC", + StartedOn = "STARTED_ON", + StartedOnDesc = "STARTED_ON_DESC", + FinishedOn = "FINISHED_ON", + FinishedOnDesc = "FINISHED_ON_DESC", + AddedTime = "ADDED_TIME", + AddedTimeDesc = "ADDED_TIME_DESC", + UpdatedTime = "UPDATED_TIME", + UpdatedTimeDesc = "UPDATED_TIME_DESC", + MediaTitleRomaji = "MEDIA_TITLE_ROMAJI", + MediaTitleRomajiDesc = "MEDIA_TITLE_ROMAJI_DESC", + MediaTitleEnglish = "MEDIA_TITLE_ENGLISH", + MediaTitleEnglishDesc = "MEDIA_TITLE_ENGLISH_DESC", + MediaTitleNative = "MEDIA_TITLE_NATIVE", + MediaTitleNativeDesc = "MEDIA_TITLE_NATIVE_DESC", + MediaPopularity = "MEDIA_POPULARITY", + MediaPopularityDesc = "MEDIA_POPULARITY_DESC" +} \ No newline at end of file