module Common.Model.Category
  ( CategoryId
  , Category(..)
  ) where

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

type CategoryId = Int64

data Category = Category
  { _category_id        :: CategoryId
  , _category_name      :: Text
  , _category_color     :: Text
  , _category_createdAt :: UTCTime
  , _category_editedAt  :: Maybe UTCTime
  , _category_deletedAt :: Maybe UTCTime
  } deriving (Show, Generic)

instance FromJSON Category
instance ToJSON Category