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