{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} module CoinbasePro.WebSocketFeed.Channel.Full.Open ( Open (..) ) where import Data.Aeson.Casing (snakeCase) import Data.Aeson.TH (defaultOptions, deriveJSON, fieldLabelModifier) import Data.Time.Clock (UTCTime) import CoinbasePro.Types (OrderId, Price, ProductId, ProfileId, Sequence, Side, Size, UserId) data Open = Open { Open -> UTCTime time :: UTCTime , Open -> ProductId productId :: ProductId , Open -> Sequence sequence :: Sequence , Open -> OrderId orderId :: OrderId , Open -> Price price :: Price , Open -> Maybe Size remainingSize :: Maybe Size , Open -> Side side :: Side , Open -> Maybe UserId userId :: Maybe UserId , Open -> Maybe UserId profileId :: Maybe ProfileId } deriving (Open -> Open -> Bool (Open -> Open -> Bool) -> (Open -> Open -> Bool) -> Eq Open forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Open -> Open -> Bool $c/= :: Open -> Open -> Bool == :: Open -> Open -> Bool $c== :: Open -> Open -> Bool Eq, Eq Open Eq Open -> (Open -> Open -> Ordering) -> (Open -> Open -> Bool) -> (Open -> Open -> Bool) -> (Open -> Open -> Bool) -> (Open -> Open -> Bool) -> (Open -> Open -> Open) -> (Open -> Open -> Open) -> Ord Open Open -> Open -> Bool Open -> Open -> Ordering Open -> Open -> Open forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: Open -> Open -> Open $cmin :: Open -> Open -> Open max :: Open -> Open -> Open $cmax :: Open -> Open -> Open >= :: Open -> Open -> Bool $c>= :: Open -> Open -> Bool > :: Open -> Open -> Bool $c> :: Open -> Open -> Bool <= :: Open -> Open -> Bool $c<= :: Open -> Open -> Bool < :: Open -> Open -> Bool $c< :: Open -> Open -> Bool compare :: Open -> Open -> Ordering $ccompare :: Open -> Open -> Ordering $cp1Ord :: Eq Open Ord, Sequence -> Open -> ShowS [Open] -> ShowS Open -> String (Sequence -> Open -> ShowS) -> (Open -> String) -> ([Open] -> ShowS) -> Show Open forall a. (Sequence -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Open] -> ShowS $cshowList :: [Open] -> ShowS show :: Open -> String $cshow :: Open -> String showsPrec :: Sequence -> Open -> ShowS $cshowsPrec :: Sequence -> Open -> ShowS Show) deriveJSON defaultOptions {fieldLabelModifier = snakeCase} ''Open