/*
* Copyright (c) 2023. yo-saito. All Rights Reserved.
*/
package net.piedpiper.bremer.entity
import net.piedpiper.bremer.utils.sql.Column
import net.piedpiper.bremer.utils.sql.Table
import java.time.LocalDateTime
@Table("audio")
data class AudioEntity(
@property:Column("id", insertable = false, updatable = false)
var id: Long = 0L,
@property:Column("slug")
var slug: String = "",
@property:Column("name")
var name: String = "",
@property:Column("album_id")
var albumId: Long = 0L,
@property:Column("path")
var path: String = "",
// join
var album: AlbumEntity? = null
)
@Table("album")
data class AlbumEntity(
@property:Column("id", insertable = false, updatable = false)
var id: Long = 0L,
@property:Column("artist_id")
var artistId: Long = 0L,
@property:Column("name")
var name: String = "",
// join
var artist: ArtistEntity? = null
)
@Table("artist")
data class ArtistEntity(
@property:Column("id", insertable = false, updatable = false)
var id: Long = 0L,
@property:Column("name")
var name: String = "",
)
@Table("audio_play_history")
data class AudioPlayHistoryEntity(
@property:Column("id", insertable = false, updatable = false)
var id: Long = 0L,
@property:Column("audio_id")
var audioId: Long = 0L,
@property:Column("last_played_at")
var lastPlayedAt: LocalDateTime = LocalDateTime.MIN
)