36 lines
855 B
Kotlin
36 lines
855 B
Kotlin
package it.vfsfitvnm.vimusic.models
|
|
|
|
import androidx.room.Entity
|
|
import androidx.room.PrimaryKey
|
|
|
|
@Entity
|
|
data class Song(
|
|
@PrimaryKey val id: String,
|
|
val title: String,
|
|
val artistsText: String? = null,
|
|
val durationText: String,
|
|
val thumbnailUrl: String?,
|
|
val lyrics: String? = null,
|
|
val likedAt: Long? = null,
|
|
val totalPlayTimeMs: Long = 0
|
|
) {
|
|
val formattedTotalPlayTime: String
|
|
get() {
|
|
val seconds = totalPlayTimeMs / 1000
|
|
|
|
val hours = seconds / 3600
|
|
|
|
return when {
|
|
hours == 0L -> "${seconds / 60}m"
|
|
hours < 24L -> "${hours}h"
|
|
else -> "${hours / 24}d"
|
|
}
|
|
}
|
|
|
|
fun toggleLike(): Song {
|
|
return copy(
|
|
likedAt = if (likedAt == null) System.currentTimeMillis() else null
|
|
)
|
|
}
|
|
}
|