2022-07-06 10:09:17 -04:00
|
|
|
//
|
|
|
|
// LocalLibrary.swift
|
|
|
|
// App
|
|
|
|
//
|
|
|
|
// Created by benonymity on 6/15/22.
|
|
|
|
//
|
|
|
|
|
|
|
|
import Foundation
|
2022-08-01 09:40:28 -04:00
|
|
|
import Unrealm
|
2022-07-06 10:09:17 -04:00
|
|
|
|
2022-08-01 09:40:28 -04:00
|
|
|
struct LocalLibraryItem: Realmable, Codable {
|
|
|
|
var id: String = "local_\(UUID().uuidString)"
|
|
|
|
var basePath: String = ""
|
|
|
|
var absolutePath: String = ""
|
|
|
|
var contentUrl: String = ""
|
|
|
|
var isInvalid: Bool = false
|
|
|
|
var mediaType: String = ""
|
|
|
|
var media: MediaType?
|
|
|
|
var localFiles: [LocalFile] = []
|
|
|
|
var coverContentUrl: String?
|
|
|
|
var coverAbsolutePath: String?
|
|
|
|
var isLocal: Bool = true
|
|
|
|
var serverConnectionConfigId: String?
|
|
|
|
var serverAddress: String?
|
|
|
|
var serverUserId: String?
|
|
|
|
var libraryItemId: String?
|
|
|
|
|
|
|
|
static func primaryKey() -> String? {
|
|
|
|
return "id"
|
|
|
|
}
|
2022-07-06 10:09:17 -04:00
|
|
|
}
|
2022-07-09 15:18:34 -04:00
|
|
|
|
2022-08-01 09:40:28 -04:00
|
|
|
struct LocalPodcastEpisode: Realmable, Codable {
|
|
|
|
var id: String = UUID().uuidString
|
|
|
|
var index: Int = 0
|
|
|
|
var episode: String?
|
|
|
|
var episodeType: String?
|
|
|
|
var title: String = "Unknown"
|
|
|
|
var subtitle: String?
|
|
|
|
var desc: String?
|
|
|
|
var audioFile: AudioFile?
|
|
|
|
var audioTrack: AudioTrack?
|
|
|
|
var duration: Double = 0
|
|
|
|
var size: Int = 0
|
|
|
|
var serverEpisodeId: String?
|
|
|
|
|
|
|
|
static func primaryKey() -> String? {
|
|
|
|
return "id"
|
|
|
|
}
|
2022-07-09 17:35:59 -04:00
|
|
|
}
|
|
|
|
|
2022-08-01 09:40:28 -04:00
|
|
|
struct LocalFile: Realmable, Codable {
|
|
|
|
var id: String = UUID().uuidString
|
|
|
|
var filename: String?
|
|
|
|
var contentUrl: String = ""
|
|
|
|
var absolutePath: String = ""
|
|
|
|
var mimeType: String?
|
|
|
|
var size: Int = 0
|
|
|
|
|
|
|
|
static func primaryKey() -> String? {
|
|
|
|
return "id"
|
|
|
|
}
|
2022-07-16 21:46:49 -04:00
|
|
|
}
|
|
|
|
|
2022-08-01 09:40:28 -04:00
|
|
|
struct LocalMediaProgress: Realmable, Codable {
|
|
|
|
var id: String = UUID().uuidString
|
|
|
|
var localLibraryItemId: String = ""
|
|
|
|
var localEpisodeId: String?
|
|
|
|
var duration: Double = 0
|
|
|
|
var progress: Double = 0
|
|
|
|
var currentTime: Double = 0
|
|
|
|
var isFinished: Bool = false
|
|
|
|
var lastUpdate: Int = 0
|
|
|
|
var startedAt: Int = 0
|
|
|
|
var finishedAt: Int?
|
2022-07-06 10:09:17 -04:00
|
|
|
// For local lib items from server to support server sync
|
2022-08-01 09:40:28 -04:00
|
|
|
var serverConnectionConfigId: String?
|
|
|
|
var serverAddress: String?
|
|
|
|
var serverUserId: String?
|
|
|
|
var libraryItemId: String?
|
|
|
|
var episodeId: String?
|
|
|
|
|
|
|
|
static func primaryKey() -> String? {
|
|
|
|
return "id"
|
|
|
|
}
|
2022-07-06 10:09:17 -04:00
|
|
|
}
|