From 794eb8da27fcc2f2e2a5c72c5f946a8e581771a9 Mon Sep 17 00:00:00 2001 From: mkelvers Date: Thu, 28 May 2026 12:11:53 +0200 Subject: [PATCH] refactor: split AnimeService into segregated interfaces --- internal/domain/anime.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/internal/domain/anime.go b/internal/domain/anime.go index 7372cf4..9923ed3 100644 --- a/internal/domain/anime.go +++ b/internal/domain/anime.go @@ -18,16 +18,25 @@ type Statistics = jikan.Statistics type ThemesData = jikan.ThemesData type ReviewEntry = jikan.ReviewEntry -type AnimeService interface { +type AnimeCatalogService interface { GetCatalogSection(ctx context.Context, userID string, section string) (CatalogSectionData, error) +} + +type AnimeDiscoverService interface { GetDiscoverSection(ctx context.Context, userID string, section string) (DiscoverSectionData, error) GetDiscoverForYou(ctx context.Context, userID string) (DiscoverSectionData, error) GetAiringSchedule(ctx context.Context, userID string) ([]Anime, error) - GetAnimeByID(ctx context.Context, id int) (Anime, error) +} + +type AnimeSearchService interface { SearchAdvanced(ctx context.Context, q, animeType, status, orderBy, sort string, genres []int, studioID int, sfw bool, page, limit int) (jikan.SearchResult, error) GetProducerNameByID(ctx context.Context, id int) (string, error) GetProducers(ctx context.Context, query string, page int, limit int) (jikan.ProducerListResult, error) GetGenres(ctx context.Context) ([]Genre, error) +} + +type AnimeDetailsService interface { + GetAnimeByID(ctx context.Context, id int) (Anime, error) GetCharacters(ctx context.Context, id int) ([]Character, error) GetRecommendations(ctx context.Context, id int) ([]Recommendation, error) GetRelations(ctx context.Context, id int) ([]jikan.RelationEntry, error) @@ -40,6 +49,11 @@ type AnimeService interface { GetReviews(ctx context.Context, id int, page int) ([]ReviewEntry, bool, error) } +type AnimePlaybackService interface { + GetAnimeByID(ctx context.Context, id int) (Anime, error) + GetAllEpisodes(ctx context.Context, id int) ([]EpisodeData, error) +} + type CatalogSectionData struct { Animes []Anime ContinueWatching []db.GetContinueWatchingEntriesRow