aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/common.cabal2
-rw-r--r--common/src/Common/Message/Key.hs5
-rw-r--r--common/src/Common/Message/Translation.hs17
-rw-r--r--common/src/Common/Model.hs2
-rw-r--r--common/src/Common/Model/PaymentStats.hs10
-rw-r--r--common/src/Common/Model/Stats.hs23
6 files changed, 39 insertions, 20 deletions
diff --git a/common/common.cabal b/common/common.cabal
index 020a987..dffc8d0 100644
--- a/common/common.cabal
+++ b/common/common.cabal
@@ -69,4 +69,4 @@ Library
Common.Model.Init
Common.Model.PaymentHeader
Common.Model.PaymentPage
- Common.Model.PaymentStats
+ Common.Model.Stats
diff --git a/common/src/Common/Message/Key.hs b/common/src/Common/Message/Key.hs
index 9b60a16..f3b0837 100644
--- a/common/src/Common/Message/Key.hs
+++ b/common/src/Common/Message/Key.hs
@@ -123,8 +123,9 @@ data Key =
| SignIn_PasswordLabel
| Statistics_Title
- | Statistics_ByMonthsAndMean Text
- | Statistics_Total
+ | Statistics_ByMonthsAndMean Text Text
+ | Statistics_TotalPayments
+ | Statistics_TotalIncomes
| WeeklyReport_Empty
| WeeklyReport_IncomesCreated Int
diff --git a/common/src/Common/Message/Translation.hs b/common/src/Common/Message/Translation.hs
index 2640da3..4ba9ffc 100644
--- a/common/src/Common/Message/Translation.hs
+++ b/common/src/Common/Message/Translation.hs
@@ -532,22 +532,27 @@ m l SignIn_PasswordLabel =
English -> "Password"
French -> "Mot de passe"
-m l (Statistics_ByMonthsAndMean amount) =
+m l (Statistics_ByMonthsAndMean paymentMean incomeMean ) =
case l of
English ->
- T.concat [ "Payments by category by month months (", amount, "on average)" ]
+ T.concat [ "Payments by category (mean ", paymentMean, ") and income (mean ", incomeMean, ") by month" ]
French ->
- T.concat [ "Paiements par catégorie par mois (en moyenne ", amount, ")" ]
+ T.concat [ "Paiements par catégorie (moy. ", paymentMean, ") et revenu (moy. ", incomeMean, ") par mois" ]
m l Statistics_Title =
case l of
English -> "Statistics"
French -> "Statistiques"
-m l Statistics_Total =
+m l Statistics_TotalPayments =
case l of
- English -> "Total"
- French -> "Total"
+ English -> "Payment total"
+ French -> "Total des payment"
+
+m l Statistics_TotalIncomes =
+ case l of
+ English -> "Income total"
+ French -> "Total des revenus"
m l WeeklyReport_Empty =
case l of
diff --git a/common/src/Common/Model.hs b/common/src/Common/Model.hs
index 319d109..979d876 100644
--- a/common/src/Common/Model.hs
+++ b/common/src/Common/Model.hs
@@ -21,6 +21,6 @@ import Common.Model.Password as X
import Common.Model.Payment as X
import Common.Model.PaymentHeader as X
import Common.Model.PaymentPage as X
-import Common.Model.PaymentStats as X
import Common.Model.SignInForm as X
+import Common.Model.Stats as X
import Common.Model.User as X
diff --git a/common/src/Common/Model/PaymentStats.hs b/common/src/Common/Model/PaymentStats.hs
deleted file mode 100644
index 2dea640..0000000
--- a/common/src/Common/Model/PaymentStats.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Common.Model.PaymentStats
- ( PaymentStats
- ) where
-
-import Data.Map (Map)
-import Data.Time.Calendar (Day)
-
-import Common.Model.Category (CategoryId)
-
-type PaymentStats = [(Day, Map CategoryId Int)]
diff --git a/common/src/Common/Model/Stats.hs b/common/src/Common/Model/Stats.hs
new file mode 100644
index 0000000..86e6ab9
--- /dev/null
+++ b/common/src/Common/Model/Stats.hs
@@ -0,0 +1,23 @@
+module Common.Model.Stats
+ ( Stats
+ , MonthStats(..)
+ ) where
+
+import Data.Aeson (FromJSON, ToJSON)
+import Data.Map (Map)
+import Data.Time.Calendar (Day)
+import GHC.Generics (Generic)
+
+import Common.Model.Category (CategoryId)
+import Common.Model.User (UserId)
+
+type Stats = [MonthStats]
+
+data MonthStats = MonthStats
+ { _monthStats_start :: Day
+ , _monthStats_paymentsByCategory :: Map CategoryId Int
+ , _monthStats_incomeByUser :: Map UserId Int
+ } deriving (Eq, Show, Generic)
+
+instance FromJSON MonthStats
+instance ToJSON MonthStats