module Model.View.LoggedIn.AddPayment ( AddPayment , initAddPayment , validateName , validateCost ) where import Result as Result exposing (Result(..)) import Utils.Validation exposing (..) import Model.Translations exposing (..) import Model.Payment exposing (PaymentFrequency(..)) type alias AddPayment = { name : String , nameError : Maybe String , cost : String , costError : Maybe String , frequency : PaymentFrequency , waitingServer : Bool } initAddPayment : PaymentFrequency -> AddPayment initAddPayment frequency = { name = "" , nameError = Nothing , cost = "" , costError = Nothing , frequency = frequency , waitingServer = False } validateName : String -> Translations -> Result String String validateName name translations = name |> validateNonEmpty (getMessage "CategoryRequired" translations) validateCost : String -> Translations -> Result String Int validateCost cost translations = cost |> validateNonEmpty (getMessage "CostRequired" translations) |> flip Result.andThen (validateNumber (getMessage "CostRequired" translations) ((/=) 0))