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