PlaylistFolder.swift 678 B

123456789101112131415161718192021222324252627282930
  1. import Foundation
  2. import SwiftData
  3. /// A folder that groups playlists together.
  4. @Model
  5. final class PlaylistFolder {
  6. var id: UUID
  7. var name: String
  8. var dateCreated: Date
  9. var isExpanded: Bool
  10. @Relationship(deleteRule: .nullify, inverse: \Playlist.folder)
  11. var playlists: [Playlist]
  12. var sortedPlaylists: [Playlist] {
  13. playlists.sorted { $0.dateModified > $1.dateModified }
  14. }
  15. var totalTrackCount: Int {
  16. playlists.reduce(0) { $0 + $1.trackCount }
  17. }
  18. init(name: String) {
  19. self.id = UUID()
  20. self.name = name
  21. self.dateCreated = Date()
  22. self.isExpanded = true
  23. self.playlists = []
  24. }
  25. }