module Model exposing ( Model , TrackState(..) , Drag(..) , DragTarget(..) ) import TileMap exposing (FineZoomLevel, Coord) import Point exposing (Point) type DragTarget = Map | Graph | StartMark | EndMark | NoTarget type Drag = None | Dragging DragTarget (Int, Int) (Int, Int) type TrackState = Empty | Loading | Failure String | Present (List Point) type alias Model = { centre: Coord , zoom: FineZoomLevel , drag: Drag , startTime : Float , duration : Float , markedTime : (Float, Float) , track: TrackState }