aboutsummaryrefslogtreecommitdiff
path: root/src/client/LoggedIn/Income/Model.elm
diff options
context:
space:
mode:
authorJoris2017-03-26 21:10:42 +0200
committerJoris2017-03-26 21:10:42 +0200
commit1e47a7754ca38bd1a6c74765d8378caf68ce4619 (patch)
treed0d9238479dc2529a1b558bbbcde346e7e8c2935 /src/client/LoggedIn/Income/Model.elm
parentc0ac16a713c4e53cf6af8e72a6d5f6b8ac5d6456 (diff)
downloadbudget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.tar.gz
budget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.tar.bz2
budget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.zip
Separate client and server watch
Diffstat (limited to 'src/client/LoggedIn/Income/Model.elm')
-rw-r--r--src/client/LoggedIn/Income/Model.elm36
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)