module Common.Model.Income
  ( IncomeId
  , Income(..)
  ) where

import           Data.Aeson         (FromJSON, ToJSON)
import           Data.Int           (Int64)
import           Data.Time          (UTCTime)
import           Data.Time.Calendar (Day)
import           GHC.Generics       (Generic)

import           Common.Model.User  (UserId)

type IncomeId = Int64

data Income = Income
  { _income_id        :: IncomeId
  , _income_userId    :: UserId
  , _income_date      :: Day
  , _income_amount    :: Int
  , _income_createdAt :: UTCTime
  , _income_editedAt  :: Maybe UTCTime
  , _income_deletedAt :: Maybe UTCTime
  } deriving (Eq, Show, Generic)

instance FromJSON Income
instance ToJSON Income