amplify-swift/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Migration/MutationSyncMetadataMigrati...

35 lines
972 B
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import Amplify
import Foundation
enum MutationSyncMetadataMigrationStep {
case emptyMutationSyncMetadataStore
case emptyModelSyncMetadataStore
case removeMutationSyncMetadataCopyStore
case createMutationSyncMetadataCopyStore
case backfillMutationSyncMetadata
case removeMutationSyncMetadataStore
case renameMutationSyncMetadataCopy
}
/// Delegate used by `MutationSyncMetadataMigration` which can be implemented by different
/// storage adapters.
protocol MutationSyncMetadataMigrationDelegate: AnyObject {
func preconditionCheck() throws
func transaction(_ basicClosure: BasicThrowableClosure) throws
func mutationSyncMetadataStoreEmptyOrMigrated() throws -> Bool
func containsDuplicateIdsAcrossModels() throws -> Bool
func applyMigrationStep(_ step: MutationSyncMetadataMigrationStep) throws
}