package expo.modules.mapmapreactnative

import expo.modules.kotlin.records.Field
import expo.modules.kotlin.records.Record

/** Mirrors LatLng in MapmapNav.types.ts. */
class LatLngRecord : Record {
  @Field var latitude: Double = 0.0
  @Field var longitude: Double = 0.0
}

/** Mirrors RouteRequest in MapmapNav.types.ts. */
class RouteRequestRecord : Record {
  @Field var profile: String = "car"
  @Field var origin: LatLngRecord = LatLngRecord()
  @Field var destination: LatLngRecord = LatLngRecord()
  /** Extra full routes beyond the primary (0–3). Default 2 per contract. */
  @Field var alternatives: Int? = null
}

/** Mirrors LocationSource in MapmapNav.types.ts (discriminated by `kind`). */
class LocationSourceRecord : Record {
  @Field var kind: String = "live"
  @Field var corpusPath: String? = null
  @Field var speedMultiplier: Double? = null
}

/** Mirrors GuidanceOptions in MapmapNav.types.ts. */
class GuidanceOptionsRecord : Record {
  @Field var routeIndex: Int = 0
  @Field var source: LocationSourceRecord = LocationSourceRecord()
}
