diff options
Diffstat (limited to 'src/client/LoggedIn/Income/Model.elm')
-rw-r--r-- | src/client/LoggedIn/Income/Model.elm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/client/LoggedIn/Income/Model.elm b/src/client/LoggedIn/Income/Model.elm new file mode 100644 index 0000000..7d852b9 --- /dev/null +++ b/src/client/LoggedIn/Income/Model.elm @@ -0,0 +1,36 @@ +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) |