36 lines
827 B
Swift
36 lines
827 B
Swift
//
|
|
// SaveScheduleViewModel.swift
|
|
// Schedule ICTIS
|
|
//
|
|
// Created by Egor Mironov on 02.04.2025.
|
|
//
|
|
|
|
import Foundation
|
|
import CoreData
|
|
|
|
final class SaveScheduleViewModel: ObservableObject {
|
|
@Published var subject: JsonClassModel
|
|
|
|
|
|
private let provider: ClassProvider
|
|
|
|
private let context: NSManagedObjectContext
|
|
|
|
init(provider: ClassProvider, subject: JsonClassModel? = nil) {
|
|
self.provider = provider
|
|
self.context = provider.newContext
|
|
|
|
if let subject,
|
|
let existingClassCopy = provider.exists(subject, in: context) {
|
|
self.subject = existingClassCopy
|
|
}
|
|
else {
|
|
self.subject = JsonClassModel(context: self.context)
|
|
}
|
|
}
|
|
|
|
func save() throws {
|
|
try provider.persist(in: context)
|
|
}
|
|
}
|