-- | The `Order` type
module OpenAI.V1.Order
    ( -- * Types
      Order(..)
    ) where

import OpenAI.Prelude

-- | Sort order by the @created_at@ timestamp of the objects
data Order = Desc | Asc
    deriving stock ((forall x. Order -> Rep Order x)
-> (forall x. Rep Order x -> Order) -> Generic Order
forall x. Rep Order x -> Order
forall x. Order -> Rep Order x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Order -> Rep Order x
from :: forall x. Order -> Rep Order x
$cto :: forall x. Rep Order x -> Order
to :: forall x. Rep Order x -> Order
Generic, Int -> Order -> ShowS
[Order] -> ShowS
Order -> String
(Int -> Order -> ShowS)
-> (Order -> String) -> ([Order] -> ShowS) -> Show Order
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Order -> ShowS
showsPrec :: Int -> Order -> ShowS
$cshow :: Order -> String
show :: Order -> String
$cshowList :: [Order] -> ShowS
showList :: [Order] -> ShowS
Show)

instance FromJSON Order where
    parseJSON :: Value -> Parser Order
parseJSON = Options -> Value -> Parser Order
forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON Options
aesonOptions

instance ToJSON Order where
    toJSON :: Order -> Value
toJSON = Options -> Order -> Value
forall a.
(Generic a, GToJSON' Value Zero (Rep a)) =>
Options -> a -> Value
genericToJSON Options
aesonOptions

instance ToHttpApiData Order where
    toUrlPiece :: Order -> Text
toUrlPiece Order
Desc = Text
"desc"
    toUrlPiece Order
Asc = Text
"asc"