{-# LANGUAGE DeriveGeneric #-} module Model.Message.Key ( Key(..) ) where import qualified Data.Aeson as Json import qualified Data.Text as T data Key = -- Title SharedCost -- Sign | Email | SignIn | SendEmailFail | InvalidEmail | UnauthorizedSignIn | Forbidden | EnterValidEmail | SignInUsed | SignInExpired | SignInInvalid | SignInMailTitle | SignInMail | SignInEmailSent -- Dates | January | February | March | April | May | June | July | August | September | October | November | December | ShortDate | LongDate -- Validation | CategoryRequired | CostRequired | DateValidationError -- Payments | Add | PaymentNotDeleted | Punctual | Monthly | SingularMonthlyCount | PluralMonthlyCount | Payment | Payments -- Statistics | Statistics | Overall | ByMonths | By -- Income | CumulativeIncomesSince | AddIncome | Income | MonthlyNetIncomes | IncomeNotDeleted -- Http error | Timeout | NetworkError | UnexpectedPayload deriving (Enum, Bounded, Show) instance Json.ToJSON Key where toJSON = Json.String . T.pack . show