import Foundation import GRDB import SessionUtilitiesKit public enum SNMessagingKit: MigratableTarget { // Just to make the external API nice public static func migrations() -> TargetMigrations { return TargetMigrations( identifier: .messagingKit, migrations: [ [ _001_InitialSetupMigration.self, _002_SetupStandardJobs.self ], // Initial DB Creation [ _003_YDBToGRDBMigration.self ], // YDB to GRDB Migration [ _004_RemoveLegacyYDB.self ], // Legacy DB removal [ _005_FixDeletedMessageReadState.self, _006_FixHiddenModAdminSupport.self, _007_HomeQueryOptimisationIndexes.self ], // Add job priorities [ _008_EmojiReacts.self, _009_OpenGroupPermission.self, _010_AddThreadIdToFTS.self ], // Fix thread FTS [ _011_AddPendingReadReceipts.self, _012_AddFTSIfNeeded.self, _013_SessionUtilChanges.self, _014_GenerateInitialUserConfigDumps.self, _015_BlockCommunityMessageRequests.self, _016_MakeBrokenProfileTimestampsNullable.self ] ] ) } public static func configure() { // Configure the job executors JobRunner.setExecutor(DisappearingMessagesJob.self, for: .disappearingMessages) JobRunner.setExecutor(FailedMessageSendsJob.self, for: .failedMessageSends) JobRunner.setExecutor(FailedAttachmentDownloadsJob.self, for: .failedAttachmentDownloads) JobRunner.setExecutor(UpdateProfilePictureJob.self, for: .updateProfilePicture) JobRunner.setExecutor(RetrieveDefaultOpenGroupRoomsJob.self, for: .retrieveDefaultOpenGroupRooms) JobRunner.setExecutor(GarbageCollectionJob.self, for: .garbageCollection) JobRunner.setExecutor(MessageSendJob.self, for: .messageSend) JobRunner.setExecutor(MessageReceiveJob.self, for: .messageReceive) JobRunner.setExecutor(NotifyPushServerJob.self, for: .notifyPushServer) JobRunner.setExecutor(SendReadReceiptsJob.self, for: .sendReadReceipts) JobRunner.setExecutor(AttachmentUploadJob.self, for: .attachmentUpload) JobRunner.setExecutor(GroupLeavingJob.self, for: .groupLeaving) JobRunner.setExecutor(AttachmentDownloadJob.self, for: .attachmentDownload) JobRunner.setExecutor(ConfigurationSyncJob.self, for: .configurationSync) JobRunner.setExecutor(ConfigMessageReceiveJob.self, for: .configMessageReceive) } }