//
//  BGTask.swift
//  Feels (iOS)
//
//  Created by Trey Tartt on 1/12/22.
//

import Foundation
import BackgroundTasks

class BGTask {
    static let updateDBMissingID = "com.88oak.Feels.dbUpdateMissing"
    
    class func runFillInMissingDatesTask(task: BGProcessingTask) {
        BGTask.scheduleBackgroundProcessing()
        
        task.expirationHandler = {
            task.setTaskCompleted(success: false)
        }
        
        PersistenceController.shared.fillInMissingDates()
        task.setTaskCompleted(success: true)
    }
    
    class func scheduleBackgroundProcessing() {
        let request = BGProcessingTaskRequest(identifier: BGTask.updateDBMissingID)
        request.requiresNetworkConnectivity = false
        request.requiresExternalPower = false
        
        var runDate = Calendar.current.date(byAdding: .day, value: 1, to: Date())
        runDate = Calendar.current.date(bySettingHour: 0, minute: 1, second: 0, of: runDate!)
        request.earliestBeginDate = runDate
        
        do {
            try BGTaskScheduler.shared.submit(request)
        } catch {
            print("Could not schedule image fetch: (error)")
        }
    }
}
