module Model.Model ( Model , initialModel , numberOfTimers ) where import Dict exposing (Dict) import Dict import Time exposing (Time) import List import Model.Timer exposing (..) import Model.Edition.Edition exposing (..) import Model.Id exposing (..) import Model.IdGenerator exposing (..) type alias Model = { currentTime : Time , timers : Dict Id Timer , timerIdGenerator : IdGenerator , edition : Maybe Edition } initialModel : Time -> Model initialModel initialTime = let (id, idGenerator) = getId initialIdGenerator in { currentTime = initialTime , timers = Dict.insert id (initialTimer initialTime) Dict.empty , timerIdGenerator = idGenerator , edition = Nothing } numberOfTimers : Model -> Int numberOfTimers = List.length << Dict.toList << .timers