import SwiftUI
import MapKit

@Observable class ApplicationData {
   var cameraPos: MapCameraPosition = .automatic
   var route: MKRoute?

   static let shared: ApplicationData = ApplicationData()
   private init() {}

   func calculateRoute() {
      let coordOrigin = CLLocation(latitude: 40.7637825011971, longitude: -73.9731328627541)
      let origin = MKMapItem(location: coordOrigin, address: nil)
      let coordDestination = CLLocation(latitude: 40.7523809365088, longitude: -73.9778321046893)
      let destination = MKMapItem(location: coordDestination, address: nil)

      let request = MKDirections.Request()
      request.source = origin
      request.destination = destination
      request.requestsAlternateRoutes = false

      Task {
         let directions = MKDirections(request: request)
         let results = try await directions.calculate()
         let routes = results.routes
         route = routes.first!
      }
   }
}