diff --git a/backends/base.go b/backends/interfaces.go similarity index 93% rename from backends/base.go rename to backends/interfaces.go index 80ae4c0..1498bb6 100644 --- a/backends/base.go +++ b/backends/interfaces.go @@ -42,6 +42,14 @@ type ListenImport interface { ImportListens(listens []Listen, oldestTimestamp time.Time) (ImportResult, error) } +type LovesExport interface { + ExportLoves(oldestTimestamp time.Time) ([]Love, error) +} + +type LovesImport interface { + ExportLoves(loves []Love, oldestTimestamp time.Time) (ImportResult, error) +} + type ImportResult struct { Count int LastTimestamp time.Time diff --git a/backends/models.go b/backends/models.go index 9362b6d..08088c6 100644 --- a/backends/models.go +++ b/backends/models.go @@ -56,3 +56,11 @@ type Listen struct { PlaybackDuration time.Duration UserName string } + +type Love struct { + Track + Created time.Time + UserName string + RecordingMbid MBID + RecordingMsid MBID +}