module Mensam.API.Order where import Mensam.API.Aeson import Data.Aeson qualified as A import Data.Kind import Deriving.Aeson qualified as A import GHC.Generics type Order :: Type data Order = Ascending | Descending deriving stock (Order Order -> Order -> Bounded Order forall a. a -> a -> Bounded a $cminBound :: Order minBound :: Order $cmaxBound :: Order maxBound :: Order Bounded, Int -> Order Order -> Int Order -> [Order] Order -> Order Order -> Order -> [Order] Order -> Order -> Order -> [Order] (Order -> Order) -> (Order -> Order) -> (Int -> Order) -> (Order -> Int) -> (Order -> [Order]) -> (Order -> Order -> [Order]) -> (Order -> Order -> [Order]) -> (Order -> Order -> Order -> [Order]) -> Enum Order forall a. (a -> a) -> (a -> a) -> (Int -> a) -> (a -> Int) -> (a -> [a]) -> (a -> a -> [a]) -> (a -> a -> [a]) -> (a -> a -> a -> [a]) -> Enum a $csucc :: Order -> Order succ :: Order -> Order $cpred :: Order -> Order pred :: Order -> Order $ctoEnum :: Int -> Order toEnum :: Int -> Order $cfromEnum :: Order -> Int fromEnum :: Order -> Int $cenumFrom :: Order -> [Order] enumFrom :: Order -> [Order] $cenumFromThen :: Order -> Order -> [Order] enumFromThen :: Order -> Order -> [Order] $cenumFromTo :: Order -> Order -> [Order] enumFromTo :: Order -> Order -> [Order] $cenumFromThenTo :: Order -> Order -> Order -> [Order] enumFromThenTo :: Order -> Order -> Order -> [Order] Enum, Order -> Order -> Bool (Order -> Order -> Bool) -> (Order -> Order -> Bool) -> Eq Order forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Order -> Order -> Bool == :: Order -> Order -> Bool $c/= :: Order -> Order -> Bool /= :: Order -> Order -> Bool Eq, (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, Eq Order Eq Order => (Order -> Order -> Ordering) -> (Order -> Order -> Bool) -> (Order -> Order -> Bool) -> (Order -> Order -> Bool) -> (Order -> Order -> Bool) -> (Order -> Order -> Order) -> (Order -> Order -> Order) -> Ord Order Order -> Order -> Bool Order -> Order -> Ordering Order -> Order -> Order 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 $ccompare :: Order -> Order -> Ordering compare :: Order -> Order -> Ordering $c< :: Order -> Order -> Bool < :: Order -> Order -> Bool $c<= :: Order -> Order -> Bool <= :: Order -> Order -> Bool $c> :: Order -> Order -> Bool > :: Order -> Order -> Bool $c>= :: Order -> Order -> Bool >= :: Order -> Order -> Bool $cmax :: Order -> Order -> Order max :: Order -> Order -> Order $cmin :: Order -> Order -> Order min :: Order -> Order -> Order Ord, ReadPrec [Order] ReadPrec Order Int -> ReadS Order ReadS [Order] (Int -> ReadS Order) -> ReadS [Order] -> ReadPrec Order -> ReadPrec [Order] -> Read Order forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a $creadsPrec :: Int -> ReadS Order readsPrec :: Int -> ReadS Order $creadList :: ReadS [Order] readList :: ReadS [Order] $creadPrec :: ReadPrec Order readPrec :: ReadPrec Order $creadListPrec :: ReadPrec [Order] readListPrec :: ReadPrec [Order] Read, Int -> Order -> ShowS [Order] -> ShowS Order -> [Char] (Int -> Order -> ShowS) -> (Order -> [Char]) -> ([Order] -> ShowS) -> Show Order forall a. (Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Order -> ShowS showsPrec :: Int -> Order -> ShowS $cshow :: Order -> [Char] show :: Order -> [Char] $cshowList :: [Order] -> ShowS showList :: [Order] -> ShowS Show) deriving (Value -> Parser [Order] Value -> Parser Order (Value -> Parser Order) -> (Value -> Parser [Order]) -> FromJSON Order forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a $cparseJSON :: Value -> Parser Order parseJSON :: Value -> Parser Order $cparseJSONList :: Value -> Parser [Order] parseJSONList :: Value -> Parser [Order] A.FromJSON, [Order] -> Value [Order] -> Encoding Order -> Value Order -> Encoding (Order -> Value) -> (Order -> Encoding) -> ([Order] -> Value) -> ([Order] -> Encoding) -> ToJSON Order forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a $ctoJSON :: Order -> Value toJSON :: Order -> Value $ctoEncoding :: Order -> Encoding toEncoding :: Order -> Encoding $ctoJSONList :: [Order] -> Value toJSONList :: [Order] -> Value $ctoEncodingList :: [Order] -> Encoding toEncodingList :: [Order] -> Encoding A.ToJSON) via A.CustomJSON (JSONSettings "" "") Order type OrderByCategory :: Type -> Type data OrderByCategory a = MkOrderByCategory { forall a. OrderByCategory a -> a orderByCategoryCategory :: a , forall a. OrderByCategory a -> Order orderByCategoryOrder :: Order } deriving stock (OrderByCategory a -> OrderByCategory a -> Bool (OrderByCategory a -> OrderByCategory a -> Bool) -> (OrderByCategory a -> OrderByCategory a -> Bool) -> Eq (OrderByCategory a) forall a. Eq a => OrderByCategory a -> OrderByCategory a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => OrderByCategory a -> OrderByCategory a -> Bool == :: OrderByCategory a -> OrderByCategory a -> Bool $c/= :: forall a. Eq a => OrderByCategory a -> OrderByCategory a -> Bool /= :: OrderByCategory a -> OrderByCategory a -> Bool Eq, (forall x. OrderByCategory a -> Rep (OrderByCategory a) x) -> (forall x. Rep (OrderByCategory a) x -> OrderByCategory a) -> Generic (OrderByCategory a) forall x. Rep (OrderByCategory a) x -> OrderByCategory a forall x. OrderByCategory a -> Rep (OrderByCategory a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (OrderByCategory a) x -> OrderByCategory a forall a x. OrderByCategory a -> Rep (OrderByCategory a) x $cfrom :: forall a x. OrderByCategory a -> Rep (OrderByCategory a) x from :: forall x. OrderByCategory a -> Rep (OrderByCategory a) x $cto :: forall a x. Rep (OrderByCategory a) x -> OrderByCategory a to :: forall x. Rep (OrderByCategory a) x -> OrderByCategory a Generic, Eq (OrderByCategory a) Eq (OrderByCategory a) => (OrderByCategory a -> OrderByCategory a -> Ordering) -> (OrderByCategory a -> OrderByCategory a -> Bool) -> (OrderByCategory a -> OrderByCategory a -> Bool) -> (OrderByCategory a -> OrderByCategory a -> Bool) -> (OrderByCategory a -> OrderByCategory a -> Bool) -> (OrderByCategory a -> OrderByCategory a -> OrderByCategory a) -> (OrderByCategory a -> OrderByCategory a -> OrderByCategory a) -> Ord (OrderByCategory a) OrderByCategory a -> OrderByCategory a -> Bool OrderByCategory a -> OrderByCategory a -> Ordering OrderByCategory a -> OrderByCategory a -> OrderByCategory a 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 forall a. Ord a => Eq (OrderByCategory a) forall a. Ord a => OrderByCategory a -> OrderByCategory a -> Bool forall a. Ord a => OrderByCategory a -> OrderByCategory a -> Ordering forall a. Ord a => OrderByCategory a -> OrderByCategory a -> OrderByCategory a $ccompare :: forall a. Ord a => OrderByCategory a -> OrderByCategory a -> Ordering compare :: OrderByCategory a -> OrderByCategory a -> Ordering $c< :: forall a. Ord a => OrderByCategory a -> OrderByCategory a -> Bool < :: OrderByCategory a -> OrderByCategory a -> Bool $c<= :: forall a. Ord a => OrderByCategory a -> OrderByCategory a -> Bool <= :: OrderByCategory a -> OrderByCategory a -> Bool $c> :: forall a. Ord a => OrderByCategory a -> OrderByCategory a -> Bool > :: OrderByCategory a -> OrderByCategory a -> Bool $c>= :: forall a. Ord a => OrderByCategory a -> OrderByCategory a -> Bool >= :: OrderByCategory a -> OrderByCategory a -> Bool $cmax :: forall a. Ord a => OrderByCategory a -> OrderByCategory a -> OrderByCategory a max :: OrderByCategory a -> OrderByCategory a -> OrderByCategory a $cmin :: forall a. Ord a => OrderByCategory a -> OrderByCategory a -> OrderByCategory a min :: OrderByCategory a -> OrderByCategory a -> OrderByCategory a Ord, ReadPrec [OrderByCategory a] ReadPrec (OrderByCategory a) Int -> ReadS (OrderByCategory a) ReadS [OrderByCategory a] (Int -> ReadS (OrderByCategory a)) -> ReadS [OrderByCategory a] -> ReadPrec (OrderByCategory a) -> ReadPrec [OrderByCategory a] -> Read (OrderByCategory a) forall a. Read a => ReadPrec [OrderByCategory a] forall a. Read a => ReadPrec (OrderByCategory a) forall a. Read a => Int -> ReadS (OrderByCategory a) forall a. Read a => ReadS [OrderByCategory a] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a $creadsPrec :: forall a. Read a => Int -> ReadS (OrderByCategory a) readsPrec :: Int -> ReadS (OrderByCategory a) $creadList :: forall a. Read a => ReadS [OrderByCategory a] readList :: ReadS [OrderByCategory a] $creadPrec :: forall a. Read a => ReadPrec (OrderByCategory a) readPrec :: ReadPrec (OrderByCategory a) $creadListPrec :: forall a. Read a => ReadPrec [OrderByCategory a] readListPrec :: ReadPrec [OrderByCategory a] Read, Int -> OrderByCategory a -> ShowS [OrderByCategory a] -> ShowS OrderByCategory a -> [Char] (Int -> OrderByCategory a -> ShowS) -> (OrderByCategory a -> [Char]) -> ([OrderByCategory a] -> ShowS) -> Show (OrderByCategory a) forall a. Show a => Int -> OrderByCategory a -> ShowS forall a. Show a => [OrderByCategory a] -> ShowS forall a. Show a => OrderByCategory a -> [Char] forall a. (Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> OrderByCategory a -> ShowS showsPrec :: Int -> OrderByCategory a -> ShowS $cshow :: forall a. Show a => OrderByCategory a -> [Char] show :: OrderByCategory a -> [Char] $cshowList :: forall a. Show a => [OrderByCategory a] -> ShowS showList :: [OrderByCategory a] -> ShowS Show) deriving (Value -> Parser [OrderByCategory a] Value -> Parser (OrderByCategory a) (Value -> Parser (OrderByCategory a)) -> (Value -> Parser [OrderByCategory a]) -> FromJSON (OrderByCategory a) forall a. FromJSON a => Value -> Parser [OrderByCategory a] forall a. FromJSON a => Value -> Parser (OrderByCategory a) forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a $cparseJSON :: forall a. FromJSON a => Value -> Parser (OrderByCategory a) parseJSON :: Value -> Parser (OrderByCategory a) $cparseJSONList :: forall a. FromJSON a => Value -> Parser [OrderByCategory a] parseJSONList :: Value -> Parser [OrderByCategory a] A.FromJSON, [OrderByCategory a] -> Value [OrderByCategory a] -> Encoding OrderByCategory a -> Value OrderByCategory a -> Encoding (OrderByCategory a -> Value) -> (OrderByCategory a -> Encoding) -> ([OrderByCategory a] -> Value) -> ([OrderByCategory a] -> Encoding) -> ToJSON (OrderByCategory a) forall a. ToJSON a => [OrderByCategory a] -> Value forall a. ToJSON a => [OrderByCategory a] -> Encoding forall a. ToJSON a => OrderByCategory a -> Value forall a. ToJSON a => OrderByCategory a -> Encoding forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a $ctoJSON :: forall a. ToJSON a => OrderByCategory a -> Value toJSON :: OrderByCategory a -> Value $ctoEncoding :: forall a. ToJSON a => OrderByCategory a -> Encoding toEncoding :: OrderByCategory a -> Encoding $ctoJSONList :: forall a. ToJSON a => [OrderByCategory a] -> Value toJSONList :: [OrderByCategory a] -> Value $ctoEncodingList :: forall a. ToJSON a => [OrderByCategory a] -> Encoding toEncodingList :: [OrderByCategory a] -> Encoding A.ToJSON) via A.CustomJSON (JSONSettings "Mk" "orderByCategory") (OrderByCategory a) type OrderByCategories :: Type -> Type newtype OrderByCategories a = MkOrderByCategories {forall a. OrderByCategories a -> [OrderByCategory a] unOrderByCategories :: [OrderByCategory a]} deriving stock (OrderByCategories a -> OrderByCategories a -> Bool (OrderByCategories a -> OrderByCategories a -> Bool) -> (OrderByCategories a -> OrderByCategories a -> Bool) -> Eq (OrderByCategories a) forall a. Eq a => OrderByCategories a -> OrderByCategories a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => OrderByCategories a -> OrderByCategories a -> Bool == :: OrderByCategories a -> OrderByCategories a -> Bool $c/= :: forall a. Eq a => OrderByCategories a -> OrderByCategories a -> Bool /= :: OrderByCategories a -> OrderByCategories a -> Bool Eq, (forall x. OrderByCategories a -> Rep (OrderByCategories a) x) -> (forall x. Rep (OrderByCategories a) x -> OrderByCategories a) -> Generic (OrderByCategories a) forall x. Rep (OrderByCategories a) x -> OrderByCategories a forall x. OrderByCategories a -> Rep (OrderByCategories a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (OrderByCategories a) x -> OrderByCategories a forall a x. OrderByCategories a -> Rep (OrderByCategories a) x $cfrom :: forall a x. OrderByCategories a -> Rep (OrderByCategories a) x from :: forall x. OrderByCategories a -> Rep (OrderByCategories a) x $cto :: forall a x. Rep (OrderByCategories a) x -> OrderByCategories a to :: forall x. Rep (OrderByCategories a) x -> OrderByCategories a Generic, Eq (OrderByCategories a) Eq (OrderByCategories a) => (OrderByCategories a -> OrderByCategories a -> Ordering) -> (OrderByCategories a -> OrderByCategories a -> Bool) -> (OrderByCategories a -> OrderByCategories a -> Bool) -> (OrderByCategories a -> OrderByCategories a -> Bool) -> (OrderByCategories a -> OrderByCategories a -> Bool) -> (OrderByCategories a -> OrderByCategories a -> OrderByCategories a) -> (OrderByCategories a -> OrderByCategories a -> OrderByCategories a) -> Ord (OrderByCategories a) OrderByCategories a -> OrderByCategories a -> Bool OrderByCategories a -> OrderByCategories a -> Ordering OrderByCategories a -> OrderByCategories a -> OrderByCategories a 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 forall a. Ord a => Eq (OrderByCategories a) forall a. Ord a => OrderByCategories a -> OrderByCategories a -> Bool forall a. Ord a => OrderByCategories a -> OrderByCategories a -> Ordering forall a. Ord a => OrderByCategories a -> OrderByCategories a -> OrderByCategories a $ccompare :: forall a. Ord a => OrderByCategories a -> OrderByCategories a -> Ordering compare :: OrderByCategories a -> OrderByCategories a -> Ordering $c< :: forall a. Ord a => OrderByCategories a -> OrderByCategories a -> Bool < :: OrderByCategories a -> OrderByCategories a -> Bool $c<= :: forall a. Ord a => OrderByCategories a -> OrderByCategories a -> Bool <= :: OrderByCategories a -> OrderByCategories a -> Bool $c> :: forall a. Ord a => OrderByCategories a -> OrderByCategories a -> Bool > :: OrderByCategories a -> OrderByCategories a -> Bool $c>= :: forall a. Ord a => OrderByCategories a -> OrderByCategories a -> Bool >= :: OrderByCategories a -> OrderByCategories a -> Bool $cmax :: forall a. Ord a => OrderByCategories a -> OrderByCategories a -> OrderByCategories a max :: OrderByCategories a -> OrderByCategories a -> OrderByCategories a $cmin :: forall a. Ord a => OrderByCategories a -> OrderByCategories a -> OrderByCategories a min :: OrderByCategories a -> OrderByCategories a -> OrderByCategories a Ord, ReadPrec [OrderByCategories a] ReadPrec (OrderByCategories a) Int -> ReadS (OrderByCategories a) ReadS [OrderByCategories a] (Int -> ReadS (OrderByCategories a)) -> ReadS [OrderByCategories a] -> ReadPrec (OrderByCategories a) -> ReadPrec [OrderByCategories a] -> Read (OrderByCategories a) forall a. Read a => ReadPrec [OrderByCategories a] forall a. Read a => ReadPrec (OrderByCategories a) forall a. Read a => Int -> ReadS (OrderByCategories a) forall a. Read a => ReadS [OrderByCategories a] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a $creadsPrec :: forall a. Read a => Int -> ReadS (OrderByCategories a) readsPrec :: Int -> ReadS (OrderByCategories a) $creadList :: forall a. Read a => ReadS [OrderByCategories a] readList :: ReadS [OrderByCategories a] $creadPrec :: forall a. Read a => ReadPrec (OrderByCategories a) readPrec :: ReadPrec (OrderByCategories a) $creadListPrec :: forall a. Read a => ReadPrec [OrderByCategories a] readListPrec :: ReadPrec [OrderByCategories a] Read, Int -> OrderByCategories a -> ShowS [OrderByCategories a] -> ShowS OrderByCategories a -> [Char] (Int -> OrderByCategories a -> ShowS) -> (OrderByCategories a -> [Char]) -> ([OrderByCategories a] -> ShowS) -> Show (OrderByCategories a) forall a. Show a => Int -> OrderByCategories a -> ShowS forall a. Show a => [OrderByCategories a] -> ShowS forall a. Show a => OrderByCategories a -> [Char] forall a. (Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> OrderByCategories a -> ShowS showsPrec :: Int -> OrderByCategories a -> ShowS $cshow :: forall a. Show a => OrderByCategories a -> [Char] show :: OrderByCategories a -> [Char] $cshowList :: forall a. Show a => [OrderByCategories a] -> ShowS showList :: [OrderByCategories a] -> ShowS Show) deriving newtype (Value -> Parser [OrderByCategories a] Value -> Parser (OrderByCategories a) (Value -> Parser (OrderByCategories a)) -> (Value -> Parser [OrderByCategories a]) -> FromJSON (OrderByCategories a) forall a. FromJSON a => Value -> Parser [OrderByCategories a] forall a. FromJSON a => Value -> Parser (OrderByCategories a) forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a $cparseJSON :: forall a. FromJSON a => Value -> Parser (OrderByCategories a) parseJSON :: Value -> Parser (OrderByCategories a) $cparseJSONList :: forall a. FromJSON a => Value -> Parser [OrderByCategories a] parseJSONList :: Value -> Parser [OrderByCategories a] A.FromJSON, [OrderByCategories a] -> Value [OrderByCategories a] -> Encoding OrderByCategories a -> Value OrderByCategories a -> Encoding (OrderByCategories a -> Value) -> (OrderByCategories a -> Encoding) -> ([OrderByCategories a] -> Value) -> ([OrderByCategories a] -> Encoding) -> ToJSON (OrderByCategories a) forall a. ToJSON a => [OrderByCategories a] -> Value forall a. ToJSON a => [OrderByCategories a] -> Encoding forall a. ToJSON a => OrderByCategories a -> Value forall a. ToJSON a => OrderByCategories a -> Encoding forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a $ctoJSON :: forall a. ToJSON a => OrderByCategories a -> Value toJSON :: OrderByCategories a -> Value $ctoEncoding :: forall a. ToJSON a => OrderByCategories a -> Encoding toEncoding :: OrderByCategories a -> Encoding $ctoJSONList :: forall a. ToJSON a => [OrderByCategories a] -> Value toJSONList :: [OrderByCategories a] -> Value $ctoEncodingList :: forall a. ToJSON a => [OrderByCategories a] -> Encoding toEncodingList :: [OrderByCategories a] -> Encoding A.ToJSON)