module Job.MonthlyPayment ( monthlyPayment ) where import Data.Time.Clock (UTCTime, getCurrentTime) import Common.Model (Frequency (..), Payment (..)) import qualified Model.Payment as Payment import qualified Model.Query as Query import Util.Time (timeToDay) monthlyPayment :: Maybe UTCTime -> IO UTCTime monthlyPayment _ = do monthlyPayments <- Query.run Payment.listActiveMonthlyOrderedByName now <- getCurrentTime actualDay <- timeToDay now let punctualPayments = map (\p -> p { _payment_frequency = Punctual , _payment_date = actualDay , _payment_createdAt = now }) monthlyPayments _ <- Query.run (Payment.createMany punctualPayments) return now