module Model.Payment ( perPage , Payments , Payment , PaymentId , paymentsDecoder , paymentIdDecoder ) where import Date exposing (..) import Json.Decode as Json exposing ((:=)) import Model.User exposing (UserId, userIdDecoder) perPage : Int perPage = 8 type alias Payments = List Payment type alias Payment = { id : PaymentId , creation : Date , name : String , cost : Int , userId : UserId } type alias PaymentId = Int paymentsDecoder : Json.Decoder Payments paymentsDecoder = Json.list paymentDecoder paymentDecoder : Json.Decoder Payment paymentDecoder = Json.object5 Payment ("id" := paymentIdDecoder) ("creation" := dateDecoder) ("name" := Json.string) ("cost" := Json.int) ("userId" := userIdDecoder) paymentIdDecoder : Json.Decoder PaymentId paymentIdDecoder = Json.int dateDecoder : Json.Decoder Date dateDecoder = Json.customDecoder Json.string Date.fromString