2025-02-05 12:24:33 +01:00

77 lines
2.4 KiB
Swift

import Foundation
final class PathSettings: ObservableObject {
@Published
var assetsOutputFolderPath: String
@Published
var pagesOutputFolderPath: String
@Published
var imagesOutputFolderPath: String
@Published
var filesOutputFolderPath: String
@Published
var videosOutputFolderPath: String
@Published
var audioOutputFolderPath: String
@Published
var tagsOutputFolderPath: String
init(assetsOutputFolderPath: String,
pagesOutputFolderPath: String,
imagesOutputFolderPath: String,
filesOutputFolderPath: String,
videosOutputFolderPath: String,
audioOutputFolderPath: String,
tagsOutputFolderPath: String) {
self.assetsOutputFolderPath = assetsOutputFolderPath
self.pagesOutputFolderPath = pagesOutputFolderPath
self.imagesOutputFolderPath = imagesOutputFolderPath
self.filesOutputFolderPath = filesOutputFolderPath
self.videosOutputFolderPath = videosOutputFolderPath
self.audioOutputFolderPath = audioOutputFolderPath
self.tagsOutputFolderPath = tagsOutputFolderPath
}
}
extension PathSettings {
convenience init(data: Data) {
self.init(
assetsOutputFolderPath: data.assetsOutputFolderPath,
pagesOutputFolderPath: data.pagesOutputFolderPath,
imagesOutputFolderPath: data.imagesOutputFolderPath,
filesOutputFolderPath: data.filesOutputFolderPath,
videosOutputFolderPath: data.videosOutputFolderPath,
audioOutputFolderPath: data.audioOutputFolderPath,
tagsOutputFolderPath: data.tagsOutputFolderPath)
}
var data: Data {
.init(
assetsOutputFolderPath: assetsOutputFolderPath,
pagesOutputFolderPath: pagesOutputFolderPath,
imagesOutputFolderPath: imagesOutputFolderPath,
filesOutputFolderPath: filesOutputFolderPath,
videosOutputFolderPath: videosOutputFolderPath,
audioOutputFolderPath: audioOutputFolderPath,
tagsOutputFolderPath: tagsOutputFolderPath)
}
struct Data: Codable, Equatable {
let assetsOutputFolderPath: String
let pagesOutputFolderPath: String
let imagesOutputFolderPath: String
let filesOutputFolderPath: String
let videosOutputFolderPath: String
let audioOutputFolderPath: String
let tagsOutputFolderPath: String
}
}