We should add SongPlay and SongSkip models which track activity around song playback. A song will be considered played if:
- The song is 30 seconds or less and it has been played through to completion.
- The song is over 30 seconds and at least half of it has been played before being skipped.
A song will be considered skipped if:
- The song is 30 seconds or less and playback is interrupted after the 2 seconds.
- The song is more than 30 seconds and playback is interrupted before half of the song has been played.
These will be best effort criteria. Seeking within a song will not affect either rule.
As far as last played goes, any time a song is loaded up and played, the last played should be updated to 'now.'