module Model.Category exposing ( Categories , Category , CategoryId , categoriesDecoder , categoryIdDecoder , empty ) import Json.Decode as Decode exposing (Decoder) import Utils.Json as Json import Dict exposing (Dict) type alias Categories = Dict CategoryId Category type alias CategoryId = Int type alias Category = { name : String , color : String } categoriesDecoder : Decoder Categories categoriesDecoder = Json.dictDecoder (Decode.field "id" categoryIdDecoder) <| Decode.map2 Category (Decode.field "name" Decode.string) (Decode.field "color" Decode.string) categoryIdDecoder : Decoder CategoryId categoryIdDecoder = Decode.int empty : Categories empty = Dict.empty