package com.rippr.data data class TrackPoint( val id: Long = 0, val tripId: Long, val segmentId: Long, val timestamp: Long, val latitude: Double, val longitude: Double, val speedKmh: Float, val altitudeM: Double, val accuracyM: Float = 0f, val bearingDeg: Float = 0f, val synced: Boolean = false, ) data class Segment( val id: Long = 0, val tripId: Long, val startedAt: Long, val endedAt: Long? = null, ) { val isOpen: Boolean get() = endedAt == null } enum class TripState { RECORDING, PAUSED, COMPLETED } data class Trip( val id: Long = 0, val startedAt: Long, val endedAt: Long? = null, val name: String? = null, val state: TripState = TripState.RECORDING, val distanceM: Double = 0.0, val movingMillis: Long = 0, val maxSpeedKmh: Float = 0f, val elevationGainM: Double = 0.0, val pointCount: Int = 0, )