module LoggedIn.Home.Model exposing ( Model , Search , init , searchInitial , validation ) import Form exposing (Form) import Form.Field as Field exposing (Field) import Form.Validate as Validate exposing (Validation) import Model.Frequency as Frequency import Model.Payer exposing (Payers) import Model.Payment as Payment exposing (PaymentId, Payments) import Model.Frequency exposing (Frequency(..)) import Model.User exposing (Users, UserId) type alias Model = { punctualPage : Int , monthlyPage : Int , search : Form String Search } type alias Search = { name : Maybe String , frequency : Frequency } init : Model init = { punctualPage = 1 , monthlyPage = 1 , search = Form.initial (searchInitial Punctual) validation } searchInitial : Frequency -> List (String, Field) searchInitial frequency = [ ("frequency", Field.string (toString frequency)) ] validation : Validation String Search validation = Validate.map2 Search (Validate.field "name" (Validate.maybe Validate.string)) (Validate.field "frequency" Frequency.validate)