docs: updated diagram to the current state

This commit is contained in:
William Artero 2023-08-24 22:39:25 +02:00
parent 3c8eba512a
commit dd45b8c933
Signed by: wwmoraes
GPG key ID: 4180618C988F24A3

View file

@ -2,22 +2,21 @@
package entities {
struct Media {
AnilistID uint64
TvdbID uint64
Type string
SourceID string
TargetID string
}
struct SonarrCustomEntry {
struct CustomEntry {
TvdbID uint64
}
struct SonarrCustomList <<alias>> {
[]SonarrCustomEntry
struct CustomList <<alias>> {
[]CustomEntry
}
}
package usecases {
interface Mapper {
interface "Mapper" as IMapper {
+MapIDs([]string) []string
+MapID(string) string
+Refresh()
@ -28,34 +27,33 @@ package usecases {
+GetMediaList(userId string) []Media
}
class MediaLinker {
+GenerateCustomList(name string) SonarrCustomList
class MediaLister {
+Generate(name string) CustomList
+GetUserID(name string) string
}
}
package adapters {
package mapper <<Frame>> {
interface MetadataSource {
interface Provider {
Fetch()
}
interface Metadata {
GetAnilistID() string
GetTvdbID() string
GetSourceID() string
GetTargetID() string
}
interface Store {
PutMedia(Context, Media)
GetMedia(Context, string) (Media, error)
GetMediaBulk(Context, []string) ([]Media, error)
PutMedia(Context, media Media) error
PutMediaBulk(Context, medias []Media) error
}
interface AnilistStore {
MappingByAnilistID(Context, string) Media
}
class JSONFile
class JSONURL
class AnilistMapper
class JSONLocalProvider
class JSONProvider
class Mapper
}
package cache <<Frame>> {
@ -70,9 +68,8 @@ package adapters {
package drivers {
package providers <<Frame>> {
struct FribbsEntry
entity FribbsSource
entity LocalJSON
struct AnilistFribbsMetadata
entity AnilistFribbsProvider
}
package stores <<Frame>> {
@ -106,37 +103,35 @@ package cmd {
drivers -[hidden] cmd
'' entities
SonarrCustomEntry --* SonarrCustomList
CustomEntry --* CustomList
'' use-cases
Media <-- MediaLinker
SonarrCustomList <-- MediaLinker
MediaLinker o--> Mapper
MediaLinker o--> Tracker
Media <-- MediaLister
CustomList <-- MediaLister
MediaLister o--> IMapper
MediaLister o--> Tracker
'' adapters/mapper
Mapper <|-[dashed]- AnilistMapper
AnilistMapper o--> Metadata
AnilistMapper o--> MetadataSource
AnilistMapper o--> AnilistStore
Store <|-[dashed]- AnilistStore
MetadataSource <|-[dashed]- JSONFile
MetadataSource <|-[dashed]- JSONURL
IMapper <|-[dashed]- Mapper
Provider -> Metadata
Mapper o--> Provider
Mapper o--> Store
Provider <|-[dashed]- JSONLocalProvider
Provider <|-[dashed]- JSONProvider
'' adapters/cache
Tracker <|-[dashed]- CachedTracker
CachedTracker o--> Cache
CachedTracker o--> Tracker
'' drivers/providers
FribbsEntry -* FribbsSource
JSONURL <|-- FribbsSource
JSONFile <|-- LocalJSON
Metadata <|-[dashed]- FribbsEntry
AnilistFribbsMetadata -* AnilistFribbsProvider
JSONProvider <|-- AnilistFribbsProvider
Metadata <|-[dashed]- AnilistFribbsMetadata
'' drivers/stores
AnilistStore <|-[dashed]- Sql
Store <|-[dashed]- Sql
'' drivers/caches
Cache <|-[dashed]- Bolt
Cache <|-[dashed]- Redis
'' drivers/trackers
Tracker <|-[dashed]- Anilist
'' cmd
MediaLinker <--o RestAPI
MediaLister <--o RestAPI
@enduml