amplify-swift/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Events/ModelSyncedEvent.swift

70 lines
1.9 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import Amplify
/// Hub payload for the `ModelSynced` event.
public struct ModelSyncedEvent {
/// Name of the model that was synced
public let modelName: String
/// True when a full sync query was performed for this event.
public let isFullSync: Bool
/// True when a delta sync query was performed for this event.
public let isDeltaSync: Bool
/// Number of model instances added to the local store
public let added: Int
/// Number of existing model instances updated in the local store
public let updated: Int
/// Number of existing model instances deleted from the local store
public let deleted: Int
public init(modelName: String,
isFullSync: Bool,
isDeltaSync: Bool,
added: Int,
updated: Int,
deleted: Int) {
self.modelName = modelName
self.isFullSync = isFullSync
self.isDeltaSync = isDeltaSync
self.added = added
self.updated = updated
self.deleted = deleted
}
}
extension ModelSyncedEvent {
struct Builder {
var modelName: String
var isFullSync: Bool
var isDeltaSync: Bool
var added: Int
var updated: Int
var deleted: Int
init() {
self.modelName = ""
self.isFullSync = false
self.isDeltaSync = false
self.added = 0
self.updated = 0
self.deleted = 0
}
func build() -> ModelSyncedEvent {
ModelSyncedEvent(
modelName: modelName,
isFullSync: isFullSync,
isDeltaSync: isDeltaSync,
added: added,
updated: updated,
deleted: deleted
)
}
}
}