parent
0a8ad2aa91
commit
41754b1f56
@ -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…
Reference in new issue