feat: add episode domain types
This commit is contained in:
36
internal/domain/episodes.go
Normal file
36
internal/domain/episodes.go
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
package domain
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
|
type EpisodeAvailability struct {
|
||||||
|
Sub []int
|
||||||
|
Dub []int
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpisodeAvailabilityProvider interface {
|
||||||
|
Name() string
|
||||||
|
ResolveEpisodeProviderID(ctx context.Context, animeID int, titleCandidates []string) (string, error)
|
||||||
|
GetEpisodeAvailabilityByProviderID(ctx context.Context, providerID string) (EpisodeAvailability, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
type CanonicalEpisode struct {
|
||||||
|
Number int `json:"number"`
|
||||||
|
Title string `json:"title"`
|
||||||
|
HasSub bool `json:"has_sub"`
|
||||||
|
HasDub bool `json:"has_dub"`
|
||||||
|
SubOnly bool `json:"sub_only"`
|
||||||
|
Filler bool `json:"filler"`
|
||||||
|
Recap bool `json:"recap"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CanonicalEpisodeList struct {
|
||||||
|
AnimeID int `json:"anime_id"`
|
||||||
|
Episodes []CanonicalEpisode `json:"episodes"`
|
||||||
|
Source string `json:"source"`
|
||||||
|
NextRefreshAt string `json:"next_refresh_at,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpisodeService interface {
|
||||||
|
GetCanonicalEpisodes(ctx context.Context, anime Anime, forceRefresh bool) (CanonicalEpisodeList, error)
|
||||||
|
RefreshTrackedDue(ctx context.Context, limit int) error
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user