aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/common.cabal4
-rw-r--r--common/src/Common/Model.hs3
-rw-r--r--common/src/Common/Model/IncomeHeader.hs18
-rw-r--r--common/src/Common/Model/IncomePage.hs18
-rw-r--r--common/src/Common/Model/IncomesAndCount.hs16
5 files changed, 41 insertions, 18 deletions
diff --git a/common/common.cabal b/common/common.cabal
index 9f3f65b..651673f 100644
--- a/common/common.cabal
+++ b/common/common.cabal
@@ -24,6 +24,7 @@ Library
Build-depends:
aeson
, base >= 4.11 && < 5
+ , containers
, text
, time
, validation
@@ -60,7 +61,8 @@ Library
Common.Model.EditPaymentForm
Common.Model.Frequency
Common.Model.Income
- Common.Model.IncomesAndCount
+ Common.Model.IncomeHeader
+ Common.Model.IncomePage
Common.Model.Init
Common.Model.InitResult
Common.Model.Payer
diff --git a/common/src/Common/Model.hs b/common/src/Common/Model.hs
index 3a5a627..313f26b 100644
--- a/common/src/Common/Model.hs
+++ b/common/src/Common/Model.hs
@@ -12,7 +12,8 @@ import Common.Model.EditPaymentForm as X
import Common.Model.Email as X
import Common.Model.Frequency as X
import Common.Model.Income as X
-import Common.Model.IncomesAndCount as X
+import Common.Model.IncomeHeader as X
+import Common.Model.IncomePage as X
import Common.Model.Init as X
import Common.Model.InitResult as X
import Common.Model.Payer as X
diff --git a/common/src/Common/Model/IncomeHeader.hs b/common/src/Common/Model/IncomeHeader.hs
new file mode 100644
index 0000000..a1defdf
--- /dev/null
+++ b/common/src/Common/Model/IncomeHeader.hs
@@ -0,0 +1,18 @@
+module Common.Model.IncomeHeader
+ ( IncomeHeader(..)
+ ) where
+
+import Data.Aeson (FromJSON, ToJSON)
+import Data.Map (Map)
+import Data.Time.Clock (UTCTime)
+import GHC.Generics (Generic)
+
+import Common.Model.User (UserId)
+
+data IncomeHeader = IncomeHeader
+ { _incomeHeader_since :: Maybe UTCTime
+ , _incomeHeader_byUser :: Map UserId Int
+ } deriving (Show, Generic)
+
+instance FromJSON IncomeHeader
+instance ToJSON IncomeHeader
diff --git a/common/src/Common/Model/IncomePage.hs b/common/src/Common/Model/IncomePage.hs
new file mode 100644
index 0000000..c3f478e
--- /dev/null
+++ b/common/src/Common/Model/IncomePage.hs
@@ -0,0 +1,18 @@
+module Common.Model.IncomePage
+ ( IncomePage(..)
+ ) where
+
+import Data.Aeson (FromJSON, ToJSON)
+import GHC.Generics (Generic)
+
+import Common.Model.Income (Income)
+import Common.Model.IncomeHeader (IncomeHeader)
+
+data IncomePage = IncomePage
+ { _incomePage_header :: IncomeHeader
+ , _incomePage_incomes :: [Income]
+ , _incomePage_totalCount :: Int
+ } deriving (Show, Generic)
+
+instance FromJSON IncomePage
+instance ToJSON IncomePage
diff --git a/common/src/Common/Model/IncomesAndCount.hs b/common/src/Common/Model/IncomesAndCount.hs
deleted file mode 100644
index 4365180..0000000
--- a/common/src/Common/Model/IncomesAndCount.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Common.Model.IncomesAndCount
- ( IncomesAndCount(..)
- ) where
-
-import Data.Aeson (FromJSON, ToJSON)
-import GHC.Generics (Generic)
-
-import Common.Model.Income (Income)
-
-data IncomesAndCount = IncomesAndCount
- { _incomesAndCount_incomes :: [Income]
- , _incomesAndCount_count :: Int
- } deriving (Show, Generic)
-
-instance FromJSON IncomesAndCount
-instance ToJSON IncomesAndCount