diff --git a/api/prisma/schema.prisma b/api/prisma/schema.prisma index e0a1454..9f8043e 100644 --- a/api/prisma/schema.prisma +++ b/api/prisma/schema.prisma @@ -41,6 +41,7 @@ enum GameStatus { PLAYING COMPLETED BACKLOG + RETIRED } model Book { @@ -66,6 +67,7 @@ enum BookStatus { READING FINISHED TO_READ + RETIRED } model Music { @@ -98,6 +100,7 @@ enum MusicStatus { LISTENING COMPLETED WANT_TO_LISTEN + RETIRED } model Art { @@ -144,6 +147,7 @@ enum ShowStatus { WATCHING COMPLETED WANT_TO_WATCH + RETIRED } model Manga { @@ -169,6 +173,7 @@ enum MangaStatus { READING COMPLETED WANT_TO_READ + RETIRED } model User { diff --git a/apps/frontend/src/app/components/books/books-list.component.ts b/apps/frontend/src/app/components/books/books-list.component.ts index abc6d0c..3bfaa06 100644 --- a/apps/frontend/src/app/components/books/books-list.component.ts +++ b/apps/frontend/src/app/components/books/books-list.component.ts @@ -79,6 +79,7 @@ import { Book, BookStatus, CreateBookDto, UpdateBookDto, Comment, SuggestionEnti + @@ -240,6 +241,7 @@ import { Book, BookStatus, CreateBookDto, UpdateBookDto, Comment, SuggestionEnti + @@ -510,6 +512,13 @@ import { Book, BookStatus, CreateBookDto, UpdateBookDto, Comment, SuggestionEnti > To Read ({{ toReadCount() }}) + @if (loading()) { @@ -1473,6 +1482,7 @@ export class BooksListComponent implements OnInit { readingCount = computed(() => this.books().filter(book => book.status === BookStatus.reading).length); finishedCount = computed(() => this.books().filter(book => book.status === BookStatus.finished).length); toReadCount = computed(() => this.books().filter(book => book.status === BookStatus.toRead).length); + retiredCount = computed(() => this.books().filter(book => book.status === BookStatus.retired).length); // Get all unique tags from all books allTags = computed(() => { @@ -1610,6 +1620,7 @@ export class BooksListComponent implements OnInit { case BookStatus.reading: return 'Currently Reading'; case BookStatus.finished: return 'Finished'; case BookStatus.toRead: return 'To Read'; + case BookStatus.retired: return 'Retired'; } } diff --git a/apps/frontend/src/app/components/games/games-list.component.ts b/apps/frontend/src/app/components/games/games-list.component.ts index a02531d..4c6ee2b 100644 --- a/apps/frontend/src/app/components/games/games-list.component.ts +++ b/apps/frontend/src/app/components/games/games-list.component.ts @@ -67,6 +67,7 @@ import { Game, GameStatus, CreateGameDto, UpdateGameDto, Comment, SuggestionEnti + @@ -216,6 +217,7 @@ import { Game, GameStatus, CreateGameDto, UpdateGameDto, Comment, SuggestionEnti + @@ -472,6 +474,13 @@ import { Game, GameStatus, CreateGameDto, UpdateGameDto, Comment, SuggestionEnti > Backlog ({{ backlogCount() }}) + @if (loading()) { @@ -1278,6 +1287,7 @@ export class GamesListComponent implements OnInit { playingCount = computed(() => this.games().filter(game => game.status === GameStatus.playing).length); completedCount = computed(() => this.games().filter(game => game.status === GameStatus.completed).length); backlogCount = computed(() => this.games().filter(game => game.status === GameStatus.backlog).length); + retiredCount = computed(() => this.games().filter(game => game.status === GameStatus.retired).length); allTags = computed(() => { const tagsSet = new Set(); @@ -1408,6 +1418,7 @@ export class GamesListComponent implements OnInit { case GameStatus.playing: return 'Currently Playing'; case GameStatus.completed: return 'Completed'; case GameStatus.backlog: return 'In Backlog'; + case GameStatus.retired: return 'Retired'; } } diff --git a/apps/frontend/src/app/components/manga/manga-list.component.ts b/apps/frontend/src/app/components/manga/manga-list.component.ts index 9aa6a32..4030f30 100644 --- a/apps/frontend/src/app/components/manga/manga-list.component.ts +++ b/apps/frontend/src/app/components/manga/manga-list.component.ts @@ -68,6 +68,7 @@ import { Manga, MangaStatus, CreateMangaDto, UpdateMangaDto, Comment, Suggestion + @@ -218,6 +219,7 @@ import { Manga, MangaStatus, CreateMangaDto, UpdateMangaDto, Comment, Suggestion + @@ -475,6 +477,13 @@ import { Manga, MangaStatus, CreateMangaDto, UpdateMangaDto, Comment, Suggestion > Want to Read ({{ wantToReadCount() }}) + @if (loading()) { @@ -1285,6 +1294,7 @@ export class MangaListComponent implements OnInit { readingCount = computed(() => this.mangaList().filter(m => m.status === MangaStatus.reading).length); completedCount = computed(() => this.mangaList().filter(m => m.status === MangaStatus.completed).length); wantToReadCount = computed(() => this.mangaList().filter(m => m.status === MangaStatus.wantToRead).length); + retiredCount = computed(() => this.mangaList().filter(m => m.status === MangaStatus.retired).length); allTags = computed(() => { const tagsSet = new Set(); @@ -1415,6 +1425,7 @@ export class MangaListComponent implements OnInit { case MangaStatus.reading: return 'Currently Reading'; case MangaStatus.completed: return 'Completed'; case MangaStatus.wantToRead: return 'Want to Read'; + case MangaStatus.retired: return 'Retired'; } } diff --git a/apps/frontend/src/app/components/music/music-list.component.ts b/apps/frontend/src/app/components/music/music-list.component.ts index 8a8b8a1..a5ceeeb 100644 --- a/apps/frontend/src/app/components/music/music-list.component.ts +++ b/apps/frontend/src/app/components/music/music-list.component.ts @@ -77,6 +77,7 @@ import { Music, MusicStatus, MusicType, CreateMusicDto, UpdateMusicDto, Comment, + @@ -236,6 +237,7 @@ import { Music, MusicStatus, MusicType, CreateMusicDto, UpdateMusicDto, Comment, + @@ -536,6 +538,13 @@ import { Music, MusicStatus, MusicType, CreateMusicDto, UpdateMusicDto, Comment, > Want to Listen ({{ wantToListenCount() }}) + @@ -1492,6 +1501,7 @@ export class MusicListComponent implements OnInit { listeningCount = computed(() => this.music().filter(m => m.status === MusicStatus.listening).length); completedCount = computed(() => this.music().filter(m => m.status === MusicStatus.completed).length); wantToListenCount = computed(() => this.music().filter(m => m.status === MusicStatus.wantToListen).length); + retiredCount = computed(() => this.music().filter(m => m.status === MusicStatus.retired).length); allTags = computed(() => { const tagsSet = new Set(); @@ -1642,6 +1652,7 @@ export class MusicListComponent implements OnInit { case MusicStatus.listening: return 'Currently Listening'; case MusicStatus.completed: return 'Completed'; case MusicStatus.wantToListen: return 'Want to Listen'; + case MusicStatus.retired: return 'Retired'; } } diff --git a/apps/frontend/src/app/components/shows/shows-list.component.ts b/apps/frontend/src/app/components/shows/shows-list.component.ts index d623fa5..1f6268e 100644 --- a/apps/frontend/src/app/components/shows/shows-list.component.ts +++ b/apps/frontend/src/app/components/shows/shows-list.component.ts @@ -66,6 +66,7 @@ import { Show, ShowStatus, ShowType, CreateShowDto, UpdateShowDto, Comment, Sugg + @@ -214,6 +215,7 @@ import { Show, ShowStatus, ShowType, CreateShowDto, UpdateShowDto, Comment, Sugg + @@ -469,6 +471,13 @@ import { Show, ShowStatus, ShowType, CreateShowDto, UpdateShowDto, Comment, Sugg > Want to Watch ({{ wantToWatchCount() }}) + @if (loading()) { @@ -1279,6 +1288,7 @@ export class ShowsListComponent implements OnInit { watchingCount = computed(() => this.shows().filter(show => show.status === ShowStatus.watching).length); completedCount = computed(() => this.shows().filter(show => show.status === ShowStatus.completed).length); wantToWatchCount = computed(() => this.shows().filter(show => show.status === ShowStatus.wantToWatch).length); + retiredCount = computed(() => this.shows().filter(show => show.status === ShowStatus.retired).length); allTags = computed(() => { const tagsSet = new Set(); @@ -1409,6 +1419,7 @@ export class ShowsListComponent implements OnInit { case ShowStatus.watching: return 'Currently Watching'; case ShowStatus.completed: return 'Completed'; case ShowStatus.wantToWatch: return 'Want to Watch'; + case ShowStatus.retired: return 'Retired'; } } diff --git a/shared-types/src/lib/book.types.ts b/shared-types/src/lib/book.types.ts index 6083926..87ddc26 100644 --- a/shared-types/src/lib/book.types.ts +++ b/shared-types/src/lib/book.types.ts @@ -10,6 +10,7 @@ enum BookStatus { reading = "READING", finished = "FINISHED", toRead = "TO_READ", + retired = "RETIRED", } interface Book { diff --git a/shared-types/src/lib/game.types.ts b/shared-types/src/lib/game.types.ts index aa55e87..842f1d5 100644 --- a/shared-types/src/lib/game.types.ts +++ b/shared-types/src/lib/game.types.ts @@ -10,6 +10,7 @@ enum GameStatus { playing = "PLAYING", completed = "COMPLETED", backlog = "BACKLOG", + retired = "RETIRED", } interface Game { diff --git a/shared-types/src/lib/manga.types.ts b/shared-types/src/lib/manga.types.ts index 2bbe6da..8173597 100644 --- a/shared-types/src/lib/manga.types.ts +++ b/shared-types/src/lib/manga.types.ts @@ -10,6 +10,7 @@ enum MangaStatus { reading = "READING", completed = "COMPLETED", wantToRead = "WANT_TO_READ", + retired = "RETIRED", } interface Manga { diff --git a/shared-types/src/lib/music.types.ts b/shared-types/src/lib/music.types.ts index f6dd4bf..911210b 100644 --- a/shared-types/src/lib/music.types.ts +++ b/shared-types/src/lib/music.types.ts @@ -16,6 +16,7 @@ enum MusicStatus { listening = "LISTENING", completed = "COMPLETED", wantToListen = "WANT_TO_LISTEN", + retired = "RETIRED", } interface Music { diff --git a/shared-types/src/lib/show.types.ts b/shared-types/src/lib/show.types.ts index 6cd91fa..6de3b94 100644 --- a/shared-types/src/lib/show.types.ts +++ b/shared-types/src/lib/show.types.ts @@ -17,6 +17,7 @@ enum ShowStatus { watching = "WATCHING", completed = "COMPLETED", wantToWatch = "WANT_TO_WATCH", + retired = "RETIRED", } interface Show {