module Common.Model.Payment ( PaymentId , Payment(..) ) where import Data.Aeson (FromJSON, ToJSON) import Data.Int (Int64) import Data.Text (Text) import Data.Time (UTCTime) import Data.Time.Calendar (Day) import GHC.Generics (Generic) import Common.Model.Category (CategoryId) import Common.Model.Frequency import Common.Model.User (UserId) type PaymentId = Int64 data Payment = Payment { _payment_id :: PaymentId , _payment_user :: UserId , _payment_name :: Text , _payment_cost :: Int , _payment_date :: Day , _payment_category :: CategoryId , _payment_frequency :: Frequency , _payment_createdAt :: UTCTime , _payment_editedAt :: Maybe UTCTime , _payment_deletedAt :: Maybe UTCTime } deriving (Show, Generic) instance FromJSON Payment instance ToJSON Payment