feat: add Playlist and PlaylistTrack models

feat/music-streaming
Laurent 1 month ago
parent 0a8ad2aa91
commit 41754b1f56
  1. 28
      Music/Models/Playlist.swift
  2. 17
      Music/Models/PlaylistTrack.swift

@ -0,0 +1,28 @@
import Foundation
import GRDB
nonisolated struct Playlist: Codable, Identifiable, Equatable, Hashable, Sendable {
var id: Int64?
var name: String
var createdAt: Date
}
nonisolated extension Playlist: FetchableRecord, MutablePersistableRecord {
static let databaseTableName = "playlists"
mutating func didInsert(_ inserted: InsertionSuccess) {
id = inserted.rowID
}
}
#if DEBUG
extension Playlist {
static func fixture(
id: Int64? = nil,
name: String = "Test Playlist",
createdAt: Date = Date()
) -> Playlist {
Playlist(id: id, name: name, createdAt: createdAt)
}
}
#endif

@ -0,0 +1,17 @@
import Foundation
import GRDB
nonisolated struct PlaylistTrack: Codable, Identifiable, Equatable, Hashable, Sendable {
var id: Int64?
var playlistId: Int64
var trackId: Int64
var position: Int
}
nonisolated extension PlaylistTrack: FetchableRecord, MutablePersistableRecord {
static let databaseTableName = "playlist_tracks"
mutating func didInsert(_ inserted: InsertionSuccess) {
id = inserted.rowID
}
}
Loading…
Cancel
Save