{- This modules describes output data for the command line utlity. -} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} module Main.Output ( BillBudget(..) , zipBills ) where import GHC.Generics (Generic) import Data.Aeson (ToJSON) import Malodivo.Budget (DistrictFunds) import Malodivo.Types.Bill (Bill) import Main.DistrictInfo (DistrictInfo, df2di) -- | This is output type. It describes contribution of each district into a bill. data BillBudget = BillBudget { bill :: Bill , districts :: [DistrictInfo] } deriving (Generic, ToJSON) zipBills :: [Bill] -> [DistrictFunds] -> [BillBudget] zipBills = zipWith zipper where zipper b df = BillBudget {bill = b, districts = df2di df}