module LoggedIn.Income.Model exposing ( Model , AddIncome , init , initForm , validation ) import Date exposing (Date) import Form exposing (Form) import Form.Validate as Validate exposing (Validation) import Validation type alias Model = { addIncome : Form String AddIncome } type alias AddIncome = { amount : Int , date : Date } init : Model init = { addIncome = initForm } initForm : Form String AddIncome initForm = Form.initial [] validation validation : Validation String AddIncome validation = Validate.map2 AddIncome (Validate.field "amount" (Validate.int |> Validate.andThen (Validate.minInt 1))) (Validate.field "date" Validation.date)