Skip to content

Commit

Permalink
Add songs
Browse files Browse the repository at this point in the history
  • Loading branch information
stevesoltys committed Dec 3, 2020
1 parent a111251 commit d01e219
Show file tree
Hide file tree
Showing 7 changed files with 125 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.stevesoltys.applemusic.model.album

import com.stevesoltys.applemusic.model.artist.ArtistRelationship
import com.stevesoltys.applemusic.model.track.TrackRelationship

/**
* @author Steve Soltys
*/
class AlbumRelationships {

var artists: ArtistRelationship? = null

val tracks: TrackRelationship? = null
}
23 changes: 23 additions & 0 deletions src/main/kotlin/com/stevesoltys/applemusic/model/track/Track.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.stevesoltys.applemusic.model.track

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import com.stevesoltys.applemusic.model.Resource
import com.stevesoltys.applemusic.model.track.musicvideo.MusicVideo
import com.stevesoltys.applemusic.model.track.song.Song

/**
* @author Steve Soltys
*/
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type"
)
@JsonSubTypes(
value = [
JsonSubTypes.Type(value = Song::class, name = "songs"),
JsonSubTypes.Type(value = MusicVideo::class, name = "musicVideos")
]
)
abstract class Track : Resource()
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.stevesoltys.applemusic.model.track

import com.stevesoltys.applemusic.model.Relationship

/**
* @author Steve Soltys
*/
class TrackRelationship : Relationship() {

var data: Array<Track>? = null
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.stevesoltys.applemusic.model.track.musicvideo

import com.stevesoltys.applemusic.model.track.Track

/**
* TODO
*
* @author Steve Soltys
*/
class MusicVideo : Track()
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.stevesoltys.applemusic.model.track.song

import com.stevesoltys.applemusic.model.track.Track

/**
* @author Steve Soltys
*/
class Song : Track() {

var relationships: SongRelationships? = null

var attributes: SongAttributes? = null
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.stevesoltys.applemusic.model.track.song

import com.fasterxml.jackson.annotation.JsonProperty
import com.stevesoltys.applemusic.model.Artwork
import com.stevesoltys.applemusic.model.EditorialNotes

/**
* @author Steve Soltys
*/
class SongAttributes {

var albumName: String? = null

var artistName: String? = null

var artwork: Artwork? = null

var composerName: String? = null

var contentRating: String? = null

var discNumber: Int? = null

var durationInMillis: Long? = null

var editorialNotes: EditorialNotes? = null

var genreNames: Array<String>? = null

var isrc: String? = null

var movementCount: Int? = null

var movementName: String? = null

var movementNumber: Int? = null

var name: String? = null

// TODO: Play parameters

// TODO: Previews

var releaseDate: String? = null

var trackNumber: Int? = null

var url: String? = null

var workName: String? = null
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.stevesoltys.applemusic.model.track.song

import com.stevesoltys.applemusic.model.album.AlbumRelationship
import com.stevesoltys.applemusic.model.artist.ArtistRelationship

/**
* @author Steve Soltys
*/
class SongRelationships {

var artists: ArtistRelationship? = null

var albums: AlbumRelationship? = null
}

0 comments on commit d01e219

Please sign in to comment.