// // SaveLocalLocationUseCase.swift // Locations // // Created by Javier Cicchelli on 12/04/2023. // Copyright © 2023 Röck+Cöde. All rights reserved. // import Dependency import Persistence struct SaveLocalLocationUseCase { // MARK: Properties private let persistence: Persistence.Service // MARK: Initialisers init(persistence: Persistence.Service) { self.persistence = persistence } // MARK: Functions func callAsFunction( name: String? = nil, latitude: Float, longitude: Float ) { let context = persistence.makeTaskContext() let entity = Location(context: context) entity.createdAt = .now entity.name = name entity.latitude = latitude entity.longitude = longitude entity.source = .local persistence.save(context: context) } } // MARK: - LoadRemoteLocationsUseCase+Initialisers extension SaveLocalLocationUseCase { init() { @Dependency(\.persistence) var persistence self.init(persistence: persistence) } }