{-# LANGUAGE OverloadedStrings #-}
module Arbiter.Core.Codec
(
Col (..)
, NullCol (..)
, RowCodec
, col
, ncol
, runCodec
, codecColumns
, ParamType (..)
, SomeParam (..)
, Params
, pval
, pnul
, parr
, pnarr
, Codec
, cDecode
, cColumns
, cScalar
, cArray
, jobCodec
, JobWriteSource (..)
, writeColumnNames
, jobRowCodec
, dlqRowCodec
, archiveRowCodec
, rateLimitPolicyViewCodec
, rateLimitBucketCodec
, concurrencyPolicyViewCodec
, concurrencyKeyViewCodec
, cronScheduleRowCodec
, workerRowWithHealthCodec
, queueRowCodec
) where
import Control.Applicative.Free.Final (Ap, liftAp, runAp, runAp_)
import Data.Aeson (Value)
import Data.Int (Int32, Int64)
import Data.Maybe (fromMaybe)
import Data.Text (Text)
import Data.Time (UTCTime)
import Data.UUID.Types (UUID)
import Arbiter.Core.Admission (splitPrefixedSuffix)
import Arbiter.Core.Concurrency.Spec (ConcurrencyKey (..))
import Arbiter.Core.Concurrency.Stats (ConcurrencyKeyView (..), ConcurrencyPolicyView (..))
import Arbiter.Core.CronSchedule (CronScheduleRow (..))
import Arbiter.Core.Job.Types
( DedupKey (..)
, JobRead
, JobWrite
, PayloadColumns (..)
, PayloadKeys (..)
, TraceContext (..)
, dedupParts
, defaultMaxAttempts
, toTraceContext
)
import Arbiter.Core.Job.Types qualified as JT
import Arbiter.Core.Job.Types.Internal (JobRecord (Job))
import Arbiter.Core.Queues (QueueRow (..))
import Arbiter.Core.RateLimit.Spec (RateLimitKey (..))
import Arbiter.Core.RateLimit.Stats (RateLimitBucketView (..), RateLimitPolicyView (..))
import Arbiter.Core.Worker (WorkerHealth (Live), WorkerRow (..))
data Col a where
CInt4 :: Col Int32
CInt8 :: Col Int64
CText :: Col Text
CBool :: Col Bool
CTimestamptz :: Col UTCTime
CJsonb :: Col Value
CFloat8 :: Col Double
CUuid :: Col UUID
data NullCol a where
NotNull :: Text -> Col a -> NullCol a
Nullable :: Text -> Col a -> NullCol (Maybe a)
type RowCodec = Ap NullCol
col :: Text -> Col a -> RowCodec a
col :: forall a. Text -> Col a -> RowCodec a
col Text
name Col a
colType = NullCol a -> Ap NullCol a
forall (f :: * -> *) a. f a -> Ap f a
liftAp (Text -> Col a -> NullCol a
forall a. Text -> Col a -> NullCol a
NotNull Text
name Col a
colType)
ncol :: Text -> Col a -> RowCodec (Maybe a)
ncol :: forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
name Col a
colType = NullCol (Maybe a) -> Ap NullCol (Maybe a)
forall (f :: * -> *) a. f a -> Ap f a
liftAp (Text -> Col a -> NullCol (Maybe a)
forall a. Text -> Col a -> NullCol (Maybe a)
Nullable Text
name Col a
colType)
runCodec :: (Applicative f) => (forall x. NullCol x -> f x) -> RowCodec a -> f a
runCodec :: forall (f :: * -> *) a.
Applicative f =>
(forall x. NullCol x -> f x) -> RowCodec a -> f a
runCodec = (forall x. NullCol x -> f x) -> Ap NullCol a -> f a
forall (g :: * -> *) (f :: * -> *) a.
Applicative g =>
(forall x. f x -> g x) -> Ap f a -> g a
runAp
codecColumns :: RowCodec a -> [Text]
codecColumns :: forall a. RowCodec a -> [Text]
codecColumns = (forall a. NullCol a -> [Text]) -> Ap NullCol a -> [Text]
forall m (f :: * -> *) b.
Monoid m =>
(forall a. f a -> m) -> Ap f b -> m
runAp_ NullCol a -> [Text]
forall a. NullCol a -> [Text]
colName
where
colName :: NullCol a -> [Text]
colName :: forall a. NullCol a -> [Text]
colName (NotNull Text
name Col a
_) = [Text
name]
colName (Nullable Text
name Col a
_) = [Text
name]
data ParamType a where
PScalar :: Col a -> ParamType a
PNullable :: Col a -> ParamType (Maybe a)
PArray :: Col a -> ParamType [a]
PNullArray :: Col a -> ParamType [Maybe a]
data SomeParam where
SomeParam :: ParamType a -> a -> SomeParam
type Params = [SomeParam]
pval :: Col a -> a -> SomeParam
pval :: forall a. Col a -> a -> SomeParam
pval Col a
colType a
value = ParamType a -> a -> SomeParam
forall a. ParamType a -> a -> SomeParam
SomeParam (Col a -> ParamType a
forall a. Col a -> ParamType a
PScalar Col a
colType) a
value
pnul :: Col a -> Maybe a -> SomeParam
pnul :: forall a. Col a -> Maybe a -> SomeParam
pnul Col a
colType Maybe a
value = ParamType (Maybe a) -> Maybe a -> SomeParam
forall a. ParamType a -> a -> SomeParam
SomeParam (Col a -> ParamType (Maybe a)
forall a. Col a -> ParamType (Maybe a)
PNullable Col a
colType) Maybe a
value
parr :: Col a -> [a] -> SomeParam
parr :: forall a. Col a -> [a] -> SomeParam
parr Col a
colType [a]
value = ParamType [a] -> [a] -> SomeParam
forall a. ParamType a -> a -> SomeParam
SomeParam (Col a -> ParamType [a]
forall a. Col a -> ParamType [a]
PArray Col a
colType) [a]
value
pnarr :: Col a -> [Maybe a] -> SomeParam
pnarr :: forall a. Col a -> [Maybe a] -> SomeParam
pnarr Col a
colType [Maybe a]
value = ParamType [Maybe a] -> [Maybe a] -> SomeParam
forall a. ParamType a -> a -> SomeParam
SomeParam (Col a -> ParamType [Maybe a]
forall a. Col a -> ParamType [Maybe a]
PNullArray Col a
colType) [Maybe a]
value
data Codec s a = Codec
{ forall s a. Codec s a -> RowCodec a
cDecode :: RowCodec a
, forall s a. Codec s a -> [WriteCol s]
cWrite :: [WriteCol s]
}
data WriteCol s where
WCol :: Text -> Col a -> (s -> a) -> WriteCol s
WNCol :: Text -> Col a -> (s -> Maybe a) -> WriteCol s
cColumns :: Codec s a -> [(Text, Text)]
cColumns :: forall s a. Codec s a -> [(Text, Text)]
cColumns Codec s a
codec = (WriteCol s -> (Text, Text)) -> [WriteCol s] -> [(Text, Text)]
forall a b. (a -> b) -> [a] -> [b]
map WriteCol s -> (Text, Text)
forall {s}. WriteCol s -> (Text, Text)
nameType (Codec s a -> [WriteCol s]
forall s a. Codec s a -> [WriteCol s]
cWrite Codec s a
codec)
where
nameType :: WriteCol s -> (Text, Text)
nameType (WCol Text
name Col a
colType s -> a
_) = (Text
name, Col a -> Text
forall a. Col a -> Text
pgType Col a
colType)
nameType (WNCol Text
name Col a
colType s -> Maybe a
_) = (Text
name, Col a -> Text
forall a. Col a -> Text
pgType Col a
colType)
cScalar :: Codec s a -> s -> Params
cScalar :: forall s a. Codec s a -> s -> Params
cScalar Codec s a
codec s
source = (WriteCol s -> SomeParam) -> [WriteCol s] -> Params
forall a b. (a -> b) -> [a] -> [b]
map WriteCol s -> SomeParam
param (Codec s a -> [WriteCol s]
forall s a. Codec s a -> [WriteCol s]
cWrite Codec s a
codec)
where
param :: WriteCol s -> SomeParam
param (WCol Text
_ Col a
colType s -> a
get) = Col a -> a -> SomeParam
forall a. Col a -> a -> SomeParam
pval Col a
colType (s -> a
get s
source)
param (WNCol Text
_ Col a
colType s -> Maybe a
get) = Col a -> Maybe a -> SomeParam
forall a. Col a -> Maybe a -> SomeParam
pnul Col a
colType (s -> Maybe a
get s
source)
cArray :: Codec s a -> [s] -> Params
cArray :: forall s a. Codec s a -> [s] -> Params
cArray Codec s a
codec [s]
rows = (WriteCol s -> SomeParam) -> [WriteCol s] -> Params
forall a b. (a -> b) -> [a] -> [b]
map WriteCol s -> SomeParam
param (Codec s a -> [WriteCol s]
forall s a. Codec s a -> [WriteCol s]
cWrite Codec s a
codec)
where
param :: WriteCol s -> SomeParam
param (WCol Text
_ Col a
colType s -> a
get) = Col a -> [a] -> SomeParam
forall a. Col a -> [a] -> SomeParam
parr Col a
colType ((s -> a) -> [s] -> [a]
forall a b. (a -> b) -> [a] -> [b]
map s -> a
get [s]
rows)
param (WNCol Text
_ Col a
colType s -> Maybe a
get) = Col a -> [Maybe a] -> SomeParam
forall a. Col a -> [Maybe a] -> SomeParam
pnarr Col a
colType ((s -> Maybe a) -> [s] -> [Maybe a]
forall a b. (a -> b) -> [a] -> [b]
map s -> Maybe a
get [s]
rows)
lmap :: (t -> s) -> Codec s a -> Codec t a
lmap :: forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap t -> s
project (Codec RowCodec a
decode [WriteCol s]
writes) = RowCodec a -> [WriteCol t] -> Codec t a
forall s a. RowCodec a -> [WriteCol s] -> Codec s a
Codec RowCodec a
decode ((WriteCol s -> WriteCol t) -> [WriteCol s] -> [WriteCol t]
forall a b. (a -> b) -> [a] -> [b]
map WriteCol s -> WriteCol t
retarget [WriteCol s]
writes)
where
retarget :: WriteCol s -> WriteCol t
retarget (WCol Text
name Col a
colType s -> a
get) = Text -> Col a -> (t -> a) -> WriteCol t
forall a s. Text -> Col a -> (s -> a) -> WriteCol s
WCol Text
name Col a
colType (s -> a
get (s -> a) -> (t -> s) -> t -> a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. t -> s
project)
retarget (WNCol Text
name Col a
colType s -> Maybe a
get) = Text -> Col a -> (t -> Maybe a) -> WriteCol t
forall a s. Text -> Col a -> (s -> Maybe a) -> WriteCol s
WNCol Text
name Col a
colType (s -> Maybe a
get (s -> Maybe a) -> (t -> s) -> t -> Maybe a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. t -> s
project)
instance Functor (Codec s) where
fmap :: forall a b. (a -> b) -> Codec s a -> Codec s b
fmap a -> b
mapper (Codec RowCodec a
decode [WriteCol s]
writes) = RowCodec b -> [WriteCol s] -> Codec s b
forall s a. RowCodec a -> [WriteCol s] -> Codec s a
Codec ((a -> b) -> RowCodec a -> RowCodec b
forall a b. (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap a -> b
mapper RowCodec a
decode) [WriteCol s]
writes
instance Applicative (Codec s) where
pure :: forall a. a -> Codec s a
pure a
value = RowCodec a -> [WriteCol s] -> Codec s a
forall s a. RowCodec a -> [WriteCol s] -> Codec s a
Codec (a -> RowCodec a
forall a. a -> Ap NullCol a
forall (f :: * -> *) a. Applicative f => a -> f a
pure a
value) []
Codec RowCodec (a -> b)
decodeFn [WriteCol s]
writesFn <*> :: forall a b. Codec s (a -> b) -> Codec s a -> Codec s b
<*> Codec RowCodec a
decodeArg [WriteCol s]
writesArg = RowCodec b -> [WriteCol s] -> Codec s b
forall s a. RowCodec a -> [WriteCol s] -> Codec s a
Codec (RowCodec (a -> b)
decodeFn RowCodec (a -> b) -> RowCodec a -> RowCodec b
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> RowCodec a
decodeArg) ([WriteCol s]
writesFn [WriteCol s] -> [WriteCol s] -> [WriteCol s]
forall a. Semigroup a => a -> a -> a
<> [WriteCol s]
writesArg)
rw :: Text -> Col a -> Codec a a
rw :: forall a. Text -> Col a -> Codec a a
rw Text
name Col a
colType = RowCodec a -> [WriteCol a] -> Codec a a
forall s a. RowCodec a -> [WriteCol s] -> Codec s a
Codec (Text -> Col a -> RowCodec a
forall a. Text -> Col a -> RowCodec a
col Text
name Col a
colType) [Text -> Col a -> (a -> a) -> WriteCol a
forall a s. Text -> Col a -> (s -> a) -> WriteCol s
WCol Text
name Col a
colType a -> a
forall a. a -> a
id]
rwN :: Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN :: forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
name Col a
colType = RowCodec (Maybe a)
-> [WriteCol (Maybe a)] -> Codec (Maybe a) (Maybe a)
forall s a. RowCodec a -> [WriteCol s] -> Codec s a
Codec (Text -> Col a -> RowCodec (Maybe a)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
name Col a
colType) [Text -> Col a -> (Maybe a -> Maybe a) -> WriteCol (Maybe a)
forall a s. Text -> Col a -> (s -> Maybe a) -> WriteCol s
WNCol Text
name Col a
colType Maybe a -> Maybe a
forall a. a -> a
id]
ro :: RowCodec a -> Codec s a
ro :: forall a s. RowCodec a -> Codec s a
ro RowCodec a
decode = RowCodec a -> [WriteCol s] -> Codec s a
forall s a. RowCodec a -> [WriteCol s] -> Codec s a
Codec RowCodec a
decode []
wo :: Text -> Col a -> (s -> a) -> Codec s ()
wo :: forall a s. Text -> Col a -> (s -> a) -> Codec s ()
wo Text
name Col a
colType s -> a
get = RowCodec () -> [WriteCol s] -> Codec s ()
forall s a. RowCodec a -> [WriteCol s] -> Codec s a
Codec (() -> RowCodec ()
forall a. a -> Ap NullCol a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()) [Text -> Col a -> (s -> a) -> WriteCol s
forall a s. Text -> Col a -> (s -> a) -> WriteCol s
WCol Text
name Col a
colType s -> a
get]
pgType :: Col a -> Text
pgType :: forall a. Col a -> Text
pgType = \case
Col a
CInt4 -> Text
"int"
Col a
CInt8 -> Text
"bigint"
Col a
CText -> Text
"text"
Col a
CBool -> Text
"boolean"
Col a
CTimestamptz -> Text
"timestamptz"
Col a
CJsonb -> Text
"jsonb"
Col a
CFloat8 -> Text
"float8"
Col a
CUuid -> Text
"uuid"
data JobWriteSource payload = JobWriteSource
{ forall payload. JobWriteSource payload -> JobWrite payload
sourceJob :: JobWrite payload
, forall payload. JobWriteSource payload -> Value
sourceEncoded :: Value
, forall payload. JobWriteSource payload -> PayloadColumns
sourceColumns :: PayloadColumns
, forall payload. JobWriteSource payload -> Maybe Int64
sourceParentId :: Maybe Int64
, forall payload. JobWriteSource payload -> Maybe Value
sourceParentState :: Maybe Value
, forall payload. JobWriteSource payload -> Bool
sourceSuspended :: Bool
}
type JobCodec a = Codec (JobWriteSource Value) a
jobCodec :: Text -> Codec (JobWriteSource payload) (JobRead Value)
jobCodec :: forall payload.
Text -> Codec (JobWriteSource payload) (JobRead Value)
jobCodec = Text -> Text -> Codec (JobWriteSource payload) (JobRead Value)
forall payload.
Text -> Text -> Codec (JobWriteSource payload) (JobRead Value)
jobCodecWith Text
"id"
jobCodecWith :: Text -> Text -> Codec (JobWriteSource payload) (JobRead Value)
jobCodecWith :: forall payload.
Text -> Text -> Codec (JobWriteSource payload) (JobRead Value)
jobCodecWith Text
idColumn Text
queueName =
Int64
-> Value
-> Text
-> Maybe Text
-> UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value
forall payload key q insertedAt adm.
key
-> payload
-> q
-> Maybe Text
-> insertedAt
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> adm
-> JobRecord payload key q insertedAt adm
Job
(Int64
-> Value
-> Text
-> Maybe Text
-> UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) Int64
-> Codec
(JobWriteSource payload)
(Value
-> Text
-> Maybe Text
-> UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> RowCodec Int64 -> Codec (JobWriteSource payload) Int64
forall a s. RowCodec a -> Codec s a
ro (Text -> Col Int64 -> RowCodec Int64
forall a. Text -> Col a -> RowCodec a
col Text
idColumn Col Int64
CInt8)
Codec
(JobWriteSource payload)
(Value
-> Text
-> Maybe Text
-> UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) Value
-> Codec
(JobWriteSource payload)
(Text
-> Maybe Text
-> UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Value)
-> Codec Value Value -> Codec (JobWriteSource payload) Value
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap JobWriteSource payload -> Value
forall payload. JobWriteSource payload -> Value
sourceEncoded (Text -> Col Value -> Codec Value Value
forall a. Text -> Col a -> Codec a a
rw Text
"payload" Col Value
CJsonb)
Codec
(JobWriteSource payload)
(Text
-> Maybe Text
-> UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) Text
-> Codec
(JobWriteSource payload)
(Maybe Text
-> UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Codec (JobWriteSource payload) Text
forall a. a -> Codec (JobWriteSource payload) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Text
queueName
Codec
(JobWriteSource payload)
(Maybe Text
-> UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe Text)
-> Codec
(JobWriteSource payload)
(UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (JobRecord payload () () () () -> Maybe Text
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Maybe Text
JT.groupKey (JobRecord payload () () () () -> Maybe Text)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Maybe Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"group_key" Col Text
CText)
Codec
(JobWriteSource payload)
(UTCTime
-> Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) UTCTime
-> Codec
(JobWriteSource payload)
(Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> RowCodec UTCTime -> Codec (JobWriteSource payload) UTCTime
forall a s. RowCodec a -> Codec s a
ro (Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
"inserted_at" Col UTCTime
CTimestamptz)
Codec
(JobWriteSource payload)
(Maybe UTCTime
-> Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe UTCTime)
-> Codec
(JobWriteSource payload)
(Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> RowCodec (Maybe UTCTime)
-> Codec (JobWriteSource payload) (Maybe UTCTime)
forall a s. RowCodec a -> Codec s a
ro (Text -> Col UTCTime -> RowCodec (Maybe UTCTime)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"updated_at" Col UTCTime
CTimestamptz)
Codec
(JobWriteSource payload)
(Int32
-> Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) Int32
-> Codec
(JobWriteSource payload)
(Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Int32)
-> Codec Int32 Int32 -> Codec (JobWriteSource payload) Int32
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (Int32 -> JobWriteSource payload -> Int32
forall a b. a -> b -> a
const Int32
0) (Text -> Col Int32 -> Codec Int32 Int32
forall a. Text -> Col a -> Codec a a
rw Text
"attempts" Col Int32
CInt4)
Codec
(JobWriteSource payload)
(Maybe Text
-> Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe Text)
-> Codec
(JobWriteSource payload)
(Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (Maybe Text -> JobWriteSource payload -> Maybe Text
forall a b. a -> b -> a
const Maybe Text
forall a. Maybe a
Nothing) (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"last_error" Col Text
CText)
Codec
(JobWriteSource payload)
(Int32
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) Int32
-> Codec
(JobWriteSource payload)
(Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Int32)
-> Codec Int32 Int32 -> Codec (JobWriteSource payload) Int32
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (JobRecord payload () () () () -> Int32
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Int32
JT.priority (JobRecord payload () () () () -> Int32)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Int32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col Int32 -> Codec Int32 Int32
forall a. Text -> Col a -> Codec a a
rw Text
"priority" Col Int32
CInt4)
Codec
(JobWriteSource payload)
(Maybe UTCTime
-> Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe UTCTime)
-> Codec
(JobWriteSource payload)
(Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> RowCodec (Maybe UTCTime)
-> Codec (JobWriteSource payload) (Maybe UTCTime)
forall a s. RowCodec a -> Codec s a
ro (Text -> Col UTCTime -> RowCodec (Maybe UTCTime)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"last_attempted_at" Col UTCTime
CTimestamptz)
Codec
(JobWriteSource payload)
(Maybe UTCTime
-> Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe UTCTime)
-> Codec
(JobWriteSource payload)
(Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe UTCTime)
-> Codec (Maybe UTCTime) (Maybe UTCTime)
-> Codec (JobWriteSource payload) (Maybe UTCTime)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (JobRecord payload () () () () -> Maybe UTCTime
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Maybe UTCTime
JT.notVisibleUntil (JobRecord payload () () () () -> Maybe UTCTime)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Maybe UTCTime
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col UTCTime -> Codec (Maybe UTCTime) (Maybe UTCTime)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"not_visible_until" Col UTCTime
CTimestamptz)
Codec
(JobWriteSource payload)
(Maybe DedupKey
-> Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe DedupKey)
-> Codec
(JobWriteSource payload)
(Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Codec (JobWriteSource payload) (Maybe DedupKey)
forall payload. Codec (JobWriteSource payload) (Maybe DedupKey)
dedupCodec
Codec
(JobWriteSource payload)
(Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe Int32)
-> Codec
(JobWriteSource payload)
(Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe Int32)
-> Codec (Maybe Int32) (Maybe Int32)
-> Codec (JobWriteSource payload) (Maybe Int32)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (Int32 -> Maybe Int32
forall a. a -> Maybe a
Just (Int32 -> Maybe Int32)
-> (JobWriteSource payload -> Int32)
-> JobWriteSource payload
-> Maybe Int32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int32 -> Maybe Int32 -> Int32
forall a. a -> Maybe a -> a
fromMaybe Int32
defaultMaxAttempts (Maybe Int32 -> Int32)
-> (JobWriteSource payload -> Maybe Int32)
-> JobWriteSource payload
-> Int32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobRecord payload () () () () -> Maybe Int32
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Maybe Int32
JT.maxAttempts (JobRecord payload () () () () -> Maybe Int32)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Maybe Int32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col Int32 -> Codec (Maybe Int32) (Maybe Int32)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"max_attempts" Col Int32
CInt4)
Codec
(JobWriteSource payload)
(Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe Int64)
-> Codec
(JobWriteSource payload)
(Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe Int64)
-> Codec (Maybe Int64) (Maybe Int64)
-> Codec (JobWriteSource payload) (Maybe Int64)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap JobWriteSource payload -> Maybe Int64
forall payload. JobWriteSource payload -> Maybe Int64
sourceParentId (Text -> Col Int64 -> Codec (Maybe Int64) (Maybe Int64)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"parent_id" Col Int64
CInt8)
Codec
(JobWriteSource payload)
(Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe Value)
-> Codec
(JobWriteSource payload)
(Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe Value)
-> Codec (Maybe Value) (Maybe Value)
-> Codec (JobWriteSource payload) (Maybe Value)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap JobWriteSource payload -> Maybe Value
forall payload. JobWriteSource payload -> Maybe Value
sourceParentState (Text -> Col Value -> Codec (Maybe Value) (Maybe Value)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"parent_state" Col Value
CJsonb)
Codec
(JobWriteSource payload)
(Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe TraceContext)
-> Codec
(JobWriteSource payload)
(Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Codec (JobWriteSource payload) (Maybe TraceContext)
forall payload. Codec (JobWriteSource payload) (Maybe TraceContext)
traceCodec
Codec
(JobWriteSource payload)
(Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRead Value)
-> Codec (JobWriteSource payload) Bool
-> Codec
(JobWriteSource payload)
(Maybe UUID
-> Int64 -> Maybe Int32 -> PayloadKeys -> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Bool)
-> Codec Bool Bool -> Codec (JobWriteSource payload) Bool
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap JobWriteSource payload -> Bool
forall payload. JobWriteSource payload -> Bool
sourceSuspended (Text -> Col Bool -> Codec Bool Bool
forall a. Text -> Col a -> Codec a a
rw Text
"suspended" Col Bool
CBool)
Codec
(JobWriteSource payload)
(Maybe UUID
-> Int64 -> Maybe Int32 -> PayloadKeys -> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe UUID)
-> Codec
(JobWriteSource payload)
(Int64 -> Maybe Int32 -> PayloadKeys -> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> RowCodec (Maybe UUID)
-> Codec (JobWriteSource payload) (Maybe UUID)
forall a s. RowCodec a -> Codec s a
ro (Text -> Col UUID -> RowCodec (Maybe UUID)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"claimed_by" Col UUID
CUuid)
Codec
(JobWriteSource payload)
(Int64 -> Maybe Int32 -> PayloadKeys -> JobRead Value)
-> Codec (JobWriteSource payload) Int64
-> Codec
(JobWriteSource payload)
(Maybe Int32 -> PayloadKeys -> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> RowCodec Int64 -> Codec (JobWriteSource payload) Int64
forall a s. RowCodec a -> Codec s a
ro (Text -> Col Int64 -> RowCodec Int64
forall a. Text -> Col a -> RowCodec a
col Text
"claim_seq" Col Int64
CInt8)
Codec
(JobWriteSource payload)
(Maybe Int32 -> PayloadKeys -> JobRead Value)
-> Codec (JobWriteSource payload) (Maybe Int32)
-> Codec (JobWriteSource payload) (PayloadKeys -> JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe Int32)
-> Codec (Maybe Int32) (Maybe Int32)
-> Codec (JobWriteSource payload) (Maybe Int32)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (JobRecord payload () () () () -> Maybe Int32
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Maybe Int32
JT.archiveFor (JobRecord payload () () () () -> Maybe Int32)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Maybe Int32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col Int32 -> Codec (Maybe Int32) (Maybe Int32)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"archive_for" Col Int32
CInt4)
Codec (JobWriteSource payload) (PayloadKeys -> JobRead Value)
-> Codec (JobWriteSource payload) PayloadKeys
-> Codec (JobWriteSource payload) (JobRead Value)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> PayloadColumns)
-> Codec PayloadColumns PayloadKeys
-> Codec (JobWriteSource payload) PayloadKeys
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap JobWriteSource payload -> PayloadColumns
forall payload. JobWriteSource payload -> PayloadColumns
sourceColumns Codec PayloadColumns PayloadKeys
payloadCodec
jobRowCodec :: Text -> RowCodec (JobRead Value)
jobRowCodec :: Text -> RowCodec (JobRead Value)
jobRowCodec Text
queueName = Codec (JobWriteSource Value) (JobRead Value)
-> RowCodec (JobRead Value)
forall s a. Codec s a -> RowCodec a
cDecode (Text -> Codec (JobWriteSource Value) (JobRead Value)
forall payload.
Text -> Codec (JobWriteSource payload) (JobRead Value)
jobCodec Text
queueName :: JobCodec (JobRead Value))
traceCodec :: Codec (JobWriteSource payload) (Maybe TraceContext)
traceCodec :: forall payload. Codec (JobWriteSource payload) (Maybe TraceContext)
traceCodec =
Maybe Text -> Maybe Text -> Maybe TraceContext
toTraceContext
(Maybe Text -> Maybe Text -> Maybe TraceContext)
-> Codec (JobWriteSource payload) (Maybe Text)
-> Codec
(JobWriteSource payload) (Maybe Text -> Maybe TraceContext)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (JobWriteSource payload -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap ((TraceContext -> Text) -> Maybe TraceContext -> Maybe Text
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TraceContext -> Text
JT.traceparent (Maybe TraceContext -> Maybe Text)
-> (JobWriteSource payload -> Maybe TraceContext)
-> JobWriteSource payload
-> Maybe Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobRecord payload () () () () -> Maybe TraceContext
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Maybe TraceContext
JT.traceContext (JobRecord payload () () () () -> Maybe TraceContext)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Maybe TraceContext
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"traceparent" Col Text
CText)
Codec (JobWriteSource payload) (Maybe Text -> Maybe TraceContext)
-> Codec (JobWriteSource payload) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe TraceContext)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap ((TraceContext -> Maybe Text
JT.tracestate (TraceContext -> Maybe Text) -> Maybe TraceContext -> Maybe Text
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) (Maybe TraceContext -> Maybe Text)
-> (JobWriteSource payload -> Maybe TraceContext)
-> JobWriteSource payload
-> Maybe Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobRecord payload () () () () -> Maybe TraceContext
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Maybe TraceContext
JT.traceContext (JobRecord payload () () () () -> Maybe TraceContext)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Maybe TraceContext
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"tracestate" Col Text
CText)
dedupCodec :: Codec (JobWriteSource payload) (Maybe DedupKey)
dedupCodec :: forall payload. Codec (JobWriteSource payload) (Maybe DedupKey)
dedupCodec =
Maybe Text -> Maybe Text -> Maybe DedupKey
forall {a}.
(Eq a, IsString a) =>
Maybe Text -> Maybe a -> Maybe DedupKey
toDedupKey
(Maybe Text -> Maybe Text -> Maybe DedupKey)
-> Codec (JobWriteSource payload) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe Text -> Maybe DedupKey)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (JobWriteSource payload -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap ((Maybe Text, Maybe Text) -> Maybe Text
forall a b. (a, b) -> a
fst ((Maybe Text, Maybe Text) -> Maybe Text)
-> (JobWriteSource payload -> (Maybe Text, Maybe Text))
-> JobWriteSource payload
-> Maybe Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe DedupKey -> (Maybe Text, Maybe Text)
dedupParts (Maybe DedupKey -> (Maybe Text, Maybe Text))
-> (JobWriteSource payload -> Maybe DedupKey)
-> JobWriteSource payload
-> (Maybe Text, Maybe Text)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobRecord payload () () () () -> Maybe DedupKey
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Maybe DedupKey
JT.dedupKey (JobRecord payload () () () () -> Maybe DedupKey)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Maybe DedupKey
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"dedup_key" Col Text
CText)
Codec (JobWriteSource payload) (Maybe Text -> Maybe DedupKey)
-> Codec (JobWriteSource payload) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe DedupKey)
forall a b.
Codec (JobWriteSource payload) (a -> b)
-> Codec (JobWriteSource payload) a
-> Codec (JobWriteSource payload) b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (JobWriteSource payload -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text)
-> Codec (JobWriteSource payload) (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap ((Maybe Text, Maybe Text) -> Maybe Text
forall a b. (a, b) -> b
snd ((Maybe Text, Maybe Text) -> Maybe Text)
-> (JobWriteSource payload -> (Maybe Text, Maybe Text))
-> JobWriteSource payload
-> Maybe Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe DedupKey -> (Maybe Text, Maybe Text)
dedupParts (Maybe DedupKey -> (Maybe Text, Maybe Text))
-> (JobWriteSource payload -> Maybe DedupKey)
-> JobWriteSource payload
-> (Maybe Text, Maybe Text)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobRecord payload () () () () -> Maybe DedupKey
forall payload key q insertedAt adm.
JobRecord payload key q insertedAt adm -> Maybe DedupKey
JT.dedupKey (JobRecord payload () () () () -> Maybe DedupKey)
-> (JobWriteSource payload -> JobRecord payload () () () ())
-> JobWriteSource payload
-> Maybe DedupKey
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> JobRecord payload () () () ()
forall payload. JobWriteSource payload -> JobWrite payload
sourceJob) (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"dedup_strategy" Col Text
CText)
where
toDedupKey :: Maybe Text -> Maybe a -> Maybe DedupKey
toDedupKey Maybe Text
Nothing Maybe a
_ = Maybe DedupKey
forall a. Maybe a
Nothing
toDedupKey (Just Text
key) (Just a
"replace") = DedupKey -> Maybe DedupKey
forall a. a -> Maybe a
Just (Text -> DedupKey
ReplaceDuplicate Text
key)
toDedupKey (Just Text
key) Maybe a
_ = DedupKey -> Maybe DedupKey
forall a. a -> Maybe a
Just (Text -> DedupKey
IgnoreDuplicate Text
key)
payloadCodec :: Codec PayloadColumns PayloadKeys
payloadCodec :: Codec PayloadColumns PayloadKeys
payloadCodec =
Maybe Text
-> Maybe RateLimitKey -> Maybe ConcurrencyKey -> PayloadKeys
PayloadKeys
(Maybe Text
-> Maybe RateLimitKey -> Maybe ConcurrencyKey -> PayloadKeys)
-> Codec PayloadColumns (Maybe Text)
-> Codec
PayloadColumns
(Maybe RateLimitKey -> Maybe ConcurrencyKey -> PayloadKeys)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (PayloadColumns -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text)
-> Codec PayloadColumns (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap PayloadColumns -> Maybe Text
JT.pcKind (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
"kind" Col Text
CText)
Codec
PayloadColumns
(Maybe RateLimitKey -> Maybe ConcurrencyKey -> PayloadKeys)
-> Codec PayloadColumns (Maybe RateLimitKey)
-> Codec PayloadColumns (Maybe ConcurrencyKey -> PayloadKeys)
forall a b.
Codec PayloadColumns (a -> b)
-> Codec PayloadColumns a -> Codec PayloadColumns b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text
-> Text
-> (Text -> Text -> RateLimitKey)
-> (PayloadColumns -> Maybe Text)
-> (PayloadColumns -> Maybe Text)
-> Codec PayloadColumns (Maybe RateLimitKey)
forall k s.
Text
-> Text
-> (Text -> Text -> k)
-> (s -> Maybe Text)
-> (s -> Maybe Text)
-> Codec s (Maybe k)
prefixedKeyCodec Text
"rate_limit_key" Text
"rate_limit_prefix" Text -> Text -> RateLimitKey
RateLimitKey PayloadColumns -> Maybe Text
JT.pcRateLimitKey PayloadColumns -> Maybe Text
JT.pcRateLimitPrefix
Codec PayloadColumns (Maybe ConcurrencyKey -> PayloadKeys)
-> Codec PayloadColumns (Maybe ConcurrencyKey)
-> Codec PayloadColumns PayloadKeys
forall a b.
Codec PayloadColumns (a -> b)
-> Codec PayloadColumns a -> Codec PayloadColumns b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text
-> Text
-> (Text -> Text -> ConcurrencyKey)
-> (PayloadColumns -> Maybe Text)
-> (PayloadColumns -> Maybe Text)
-> Codec PayloadColumns (Maybe ConcurrencyKey)
forall k s.
Text
-> Text
-> (Text -> Text -> k)
-> (s -> Maybe Text)
-> (s -> Maybe Text)
-> Codec s (Maybe k)
prefixedKeyCodec Text
"concurrency_key" Text
"concurrency_prefix" Text -> Text -> ConcurrencyKey
ConcurrencyKey PayloadColumns -> Maybe Text
JT.pcConcurrencyKey PayloadColumns -> Maybe Text
JT.pcConcurrencyPrefix
Codec PayloadColumns PayloadKeys
-> Codec PayloadColumns () -> Codec PayloadColumns PayloadKeys
forall a b.
Codec PayloadColumns a
-> Codec PayloadColumns b -> Codec PayloadColumns a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* Text
-> Col Double
-> (PayloadColumns -> Double)
-> Codec PayloadColumns ()
forall a s. Text -> Col a -> (s -> a) -> Codec s ()
wo Text
"rate_limit_cost" Col Double
CFloat8 PayloadColumns -> Double
JT.pcRateLimitCost
prefixedKeyCodec :: Text -> Text -> (Text -> Text -> k) -> (s -> Maybe Text) -> (s -> Maybe Text) -> Codec s (Maybe k)
prefixedKeyCodec :: forall k s.
Text
-> Text
-> (Text -> Text -> k)
-> (s -> Maybe Text)
-> (s -> Maybe Text)
-> Codec s (Maybe k)
prefixedKeyCodec Text
keyCol Text
prefixCol Text -> Text -> k
ctor s -> Maybe Text
keyOf s -> Maybe Text
prefixOf =
Maybe Text -> Maybe Text -> Maybe k
toKey
(Maybe Text -> Maybe Text -> Maybe k)
-> Codec s (Maybe Text) -> Codec s (Maybe Text -> Maybe k)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (s -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text) -> Codec s (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap s -> Maybe Text
keyOf (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
keyCol Col Text
CText)
Codec s (Maybe Text -> Maybe k)
-> Codec s (Maybe Text) -> Codec s (Maybe k)
forall a b. Codec s (a -> b) -> Codec s a -> Codec s b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (s -> Maybe Text)
-> Codec (Maybe Text) (Maybe Text) -> Codec s (Maybe Text)
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap s -> Maybe Text
prefixOf (Text -> Col Text -> Codec (Maybe Text) (Maybe Text)
forall a. Text -> Col a -> Codec (Maybe a) (Maybe a)
rwN Text
prefixCol Col Text
CText)
where
toKey :: Maybe Text -> Maybe Text -> Maybe k
toKey (Just Text
key) (Just Text
prefix) = k -> Maybe k
forall a. a -> Maybe a
Just (Text -> Text -> k
ctor Text
prefix (Text -> Text -> Text
splitPrefixedSuffix Text
prefix Text
key))
toKey Maybe Text
_ Maybe Text
_ = Maybe k
forall a. Maybe a
Nothing
jobWriteColumns :: [(Text, Text)]
jobWriteColumns :: [(Text, Text)]
jobWriteColumns = Codec (JobWriteSource Value) (JobRead Value) -> [(Text, Text)]
forall s a. Codec s a -> [(Text, Text)]
cColumns (Text -> Codec (JobWriteSource Value) (JobRead Value)
forall payload.
Text -> Codec (JobWriteSource payload) (JobRead Value)
jobCodec Text
"" :: JobCodec (JobRead Value))
writeColumnNames :: [Text]
writeColumnNames :: [Text]
writeColumnNames = ((Text, Text) -> Text) -> [(Text, Text)] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map (Text, Text) -> Text
forall a b. (a, b) -> a
fst [(Text, Text)]
jobWriteColumns
jobEnvelopeCodec :: Text -> Text -> RowCodec (Int64, UTCTime, JobRead Value)
jobEnvelopeCodec :: Text -> Text -> RowCodec (Int64, UTCTime, JobRead Value)
jobEnvelopeCodec Text
tsColumn Text
queueName =
(,,)
(Int64
-> UTCTime -> JobRead Value -> (Int64, UTCTime, JobRead Value))
-> RowCodec Int64
-> Ap
NullCol
(UTCTime -> JobRead Value -> (Int64, UTCTime, JobRead Value))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Int64 -> RowCodec Int64
forall a. Text -> Col a -> RowCodec a
col Text
"id" Col Int64
CInt8
Ap
NullCol
(UTCTime -> JobRead Value -> (Int64, UTCTime, JobRead Value))
-> RowCodec UTCTime
-> Ap NullCol (JobRead Value -> (Int64, UTCTime, JobRead Value))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
tsColumn Col UTCTime
CTimestamptz
Ap NullCol (JobRead Value -> (Int64, UTCTime, JobRead Value))
-> RowCodec (JobRead Value)
-> RowCodec (Int64, UTCTime, JobRead Value)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Codec (JobWriteSource Value) (JobRead Value)
-> RowCodec (JobRead Value)
forall s a. Codec s a -> RowCodec a
cDecode (Text -> Text -> Codec (JobWriteSource Value) (JobRead Value)
forall payload.
Text -> Text -> Codec (JobWriteSource payload) (JobRead Value)
jobCodecWith Text
"job_id" Text
queueName :: JobCodec (JobRead Value))
dlqRowCodec :: Text -> RowCodec (Int64, UTCTime, JobRead Value)
dlqRowCodec :: Text -> RowCodec (Int64, UTCTime, JobRead Value)
dlqRowCodec = Text -> Text -> RowCodec (Int64, UTCTime, JobRead Value)
jobEnvelopeCodec Text
"failed_at"
archiveRowCodec :: Text -> RowCodec (Int64, UTCTime, JobRead Value, Maybe Value)
archiveRowCodec :: Text -> RowCodec (Int64, UTCTime, JobRead Value, Maybe Value)
archiveRowCodec Text
queueName =
(\(Int64
envelopeId, UTCTime
completed, JobRead Value
job) Maybe Value
result -> (Int64
envelopeId, UTCTime
completed, JobRead Value
job, Maybe Value
result))
((Int64, UTCTime, JobRead Value)
-> Maybe Value -> (Int64, UTCTime, JobRead Value, Maybe Value))
-> RowCodec (Int64, UTCTime, JobRead Value)
-> Ap
NullCol
(Maybe Value -> (Int64, UTCTime, JobRead Value, Maybe Value))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Text -> RowCodec (Int64, UTCTime, JobRead Value)
jobEnvelopeCodec Text
"completed_at" Text
queueName
Ap
NullCol
(Maybe Value -> (Int64, UTCTime, JobRead Value, Maybe Value))
-> Ap NullCol (Maybe Value)
-> RowCodec (Int64, UTCTime, JobRead Value, Maybe Value)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Value -> Ap NullCol (Maybe Value)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"result" Col Value
CJsonb
rateLimitPolicyViewCodec :: RowCodec RateLimitPolicyView
rateLimitPolicyViewCodec :: RowCodec RateLimitPolicyView
rateLimitPolicyViewCodec =
Text
-> Double
-> Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView
RateLimitPolicyView
(Text
-> Double
-> Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol Text
-> Ap
NullCol
(Double
-> Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"prefix_id" Col Text
CText
Ap
NullCol
(Double
-> Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol Double
-> Ap
NullCol
(Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol Double
forall a. Text -> Col a -> RowCodec a
col Text
"default_max_tokens" Col Double
CFloat8
Ap
NullCol
(Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol Double
-> Ap
NullCol
(Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol Double
forall a. Text -> Col a -> RowCodec a
col Text
"default_refill_amount" Col Double
CFloat8
Ap
NullCol
(Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol Double
-> Ap
NullCol
(Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol Double
forall a. Text -> Col a -> RowCodec a
col Text
"default_interval" Col Double
CFloat8
Ap
NullCol
(Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol (Maybe Double)
-> Ap
NullCol
(Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol (Maybe Double)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"override_max_tokens" Col Double
CFloat8
Ap
NullCol
(Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol (Maybe Double)
-> Ap
NullCol
(Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol (Maybe Double)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"override_refill_amount" Col Double
CFloat8
Ap
NullCol
(Maybe Double
-> Int64
-> Int64
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol (Maybe Double)
-> Ap
NullCol
(Int64
-> Int64 -> Maybe Double -> Maybe Double -> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol (Maybe Double)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"override_interval" Col Double
CFloat8
Ap
NullCol
(Int64
-> Int64 -> Maybe Double -> Maybe Double -> RateLimitPolicyView)
-> RowCodec Int64
-> Ap
NullCol
(Int64 -> Maybe Double -> Maybe Double -> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int64 -> RowCodec Int64
forall a. Text -> Col a -> RowCodec a
col Text
"bucket_count" Col Int64
CInt8
Ap
NullCol
(Int64 -> Maybe Double -> Maybe Double -> RateLimitPolicyView)
-> RowCodec Int64
-> Ap NullCol (Maybe Double -> Maybe Double -> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int64 -> RowCodec Int64
forall a. Text -> Col a -> RowCodec a
col Text
"throttled_count" Col Int64
CInt8
Ap NullCol (Maybe Double -> Maybe Double -> RateLimitPolicyView)
-> Ap NullCol (Maybe Double)
-> Ap NullCol (Maybe Double -> RateLimitPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol (Maybe Double)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"min_tokens" Col Double
CFloat8
Ap NullCol (Maybe Double -> RateLimitPolicyView)
-> Ap NullCol (Maybe Double) -> RowCodec RateLimitPolicyView
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol (Maybe Double)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"avg_tokens" Col Double
CFloat8
rateLimitBucketCodec :: RowCodec RateLimitBucketView
rateLimitBucketCodec :: RowCodec RateLimitBucketView
rateLimitBucketCodec =
Text
-> Text
-> Double
-> Double
-> Maybe Double
-> UTCTime
-> RateLimitBucketView
RateLimitBucketView
(Text
-> Text
-> Double
-> Double
-> Maybe Double
-> UTCTime
-> RateLimitBucketView)
-> Ap NullCol Text
-> Ap
NullCol
(Text
-> Double
-> Double
-> Maybe Double
-> UTCTime
-> RateLimitBucketView)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"rate_limit_key" Col Text
CText
Ap
NullCol
(Text
-> Double
-> Double
-> Maybe Double
-> UTCTime
-> RateLimitBucketView)
-> Ap NullCol Text
-> Ap
NullCol
(Double
-> Double -> Maybe Double -> UTCTime -> RateLimitBucketView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"policy_prefix" Col Text
CText
Ap
NullCol
(Double
-> Double -> Maybe Double -> UTCTime -> RateLimitBucketView)
-> Ap NullCol Double
-> Ap
NullCol (Double -> Maybe Double -> UTCTime -> RateLimitBucketView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol Double
forall a. Text -> Col a -> RowCodec a
col Text
"tokens" Col Double
CFloat8
Ap
NullCol (Double -> Maybe Double -> UTCTime -> RateLimitBucketView)
-> Ap NullCol Double
-> Ap NullCol (Maybe Double -> UTCTime -> RateLimitBucketView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol Double
forall a. Text -> Col a -> RowCodec a
col Text
"max_tokens" Col Double
CFloat8
Ap NullCol (Maybe Double -> UTCTime -> RateLimitBucketView)
-> Ap NullCol (Maybe Double)
-> Ap NullCol (UTCTime -> RateLimitBucketView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol (Maybe Double)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"fill_fraction" Col Double
CFloat8
Ap NullCol (UTCTime -> RateLimitBucketView)
-> RowCodec UTCTime -> RowCodec RateLimitBucketView
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
"last_refill" Col UTCTime
CTimestamptz
concurrencyPolicyViewCodec :: RowCodec ConcurrencyPolicyView
concurrencyPolicyViewCodec :: RowCodec ConcurrencyPolicyView
concurrencyPolicyViewCodec =
Text
-> Int32
-> Maybe Int32
-> Int64
-> Int64
-> Maybe Int32
-> ConcurrencyPolicyView
ConcurrencyPolicyView
(Text
-> Int32
-> Maybe Int32
-> Int64
-> Int64
-> Maybe Int32
-> ConcurrencyPolicyView)
-> Ap NullCol Text
-> Ap
NullCol
(Int32
-> Maybe Int32
-> Int64
-> Int64
-> Maybe Int32
-> ConcurrencyPolicyView)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"prefix_id" Col Text
CText
Ap
NullCol
(Int32
-> Maybe Int32
-> Int64
-> Int64
-> Maybe Int32
-> ConcurrencyPolicyView)
-> Ap NullCol Int32
-> Ap
NullCol
(Maybe Int32
-> Int64 -> Int64 -> Maybe Int32 -> ConcurrencyPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int32 -> Ap NullCol Int32
forall a. Text -> Col a -> RowCodec a
col Text
"default_limit" Col Int32
CInt4
Ap
NullCol
(Maybe Int32
-> Int64 -> Int64 -> Maybe Int32 -> ConcurrencyPolicyView)
-> Ap NullCol (Maybe Int32)
-> Ap
NullCol (Int64 -> Int64 -> Maybe Int32 -> ConcurrencyPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int32 -> Ap NullCol (Maybe Int32)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"override_limit" Col Int32
CInt4
Ap NullCol (Int64 -> Int64 -> Maybe Int32 -> ConcurrencyPolicyView)
-> RowCodec Int64
-> Ap NullCol (Int64 -> Maybe Int32 -> ConcurrencyPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int64 -> RowCodec Int64
forall a. Text -> Col a -> RowCodec a
col Text
"key_count" Col Int64
CInt8
Ap NullCol (Int64 -> Maybe Int32 -> ConcurrencyPolicyView)
-> RowCodec Int64
-> Ap NullCol (Maybe Int32 -> ConcurrencyPolicyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int64 -> RowCodec Int64
forall a. Text -> Col a -> RowCodec a
col Text
"total_in_flight" Col Int64
CInt8
Ap NullCol (Maybe Int32 -> ConcurrencyPolicyView)
-> Ap NullCol (Maybe Int32) -> RowCodec ConcurrencyPolicyView
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int32 -> Ap NullCol (Maybe Int32)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"max_in_flight" Col Int32
CInt4
concurrencyKeyViewCodec :: RowCodec ConcurrencyKeyView
concurrencyKeyViewCodec :: RowCodec ConcurrencyKeyView
concurrencyKeyViewCodec =
Text
-> Text -> Int32 -> Int32 -> Maybe Double -> ConcurrencyKeyView
ConcurrencyKeyView
(Text
-> Text -> Int32 -> Int32 -> Maybe Double -> ConcurrencyKeyView)
-> Ap NullCol Text
-> Ap
NullCol
(Text -> Int32 -> Int32 -> Maybe Double -> ConcurrencyKeyView)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"concurrency_key" Col Text
CText
Ap
NullCol
(Text -> Int32 -> Int32 -> Maybe Double -> ConcurrencyKeyView)
-> Ap NullCol Text
-> Ap
NullCol (Int32 -> Int32 -> Maybe Double -> ConcurrencyKeyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"concurrency_prefix" Col Text
CText
Ap NullCol (Int32 -> Int32 -> Maybe Double -> ConcurrencyKeyView)
-> Ap NullCol Int32
-> Ap NullCol (Int32 -> Maybe Double -> ConcurrencyKeyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int32 -> Ap NullCol Int32
forall a. Text -> Col a -> RowCodec a
col Text
"in_flight" Col Int32
CInt4
Ap NullCol (Int32 -> Maybe Double -> ConcurrencyKeyView)
-> Ap NullCol Int32
-> Ap NullCol (Maybe Double -> ConcurrencyKeyView)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int32 -> Ap NullCol Int32
forall a. Text -> Col a -> RowCodec a
col Text
"effective_limit" Col Int32
CInt4
Ap NullCol (Maybe Double -> ConcurrencyKeyView)
-> Ap NullCol (Maybe Double) -> RowCodec ConcurrencyKeyView
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol (Maybe Double)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"fill_fraction" Col Double
CFloat8
cronScheduleRowCodec :: RowCodec CronScheduleRow
cronScheduleRowCodec :: RowCodec CronScheduleRow
cronScheduleRowCodec =
Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow
CronScheduleRow
(Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol Text
-> Ap
NullCol
(Text
-> Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"name" Col Text
CText
Ap
NullCol
(Text
-> Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol Text
-> Ap
NullCol
(Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"queue_name" Col Text
CText
Ap
NullCol
(Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol Text
-> Ap
NullCol
(Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"default_expression" Col Text
CText
Ap
NullCol
(Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol Text
-> Ap
NullCol
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"default_overlap" Col Text
CText
Ap
NullCol
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol (Maybe Text)
-> Ap
NullCol
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol (Maybe Text)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"default_timezone" Col Text
CText
Ap
NullCol
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol (Maybe Text)
-> Ap
NullCol
(Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol (Maybe Text)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"override_expression" Col Text
CText
Ap
NullCol
(Maybe Text
-> Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol (Maybe Text)
-> Ap
NullCol
(Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol (Maybe Text)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"override_overlap" Col Text
CText
Ap
NullCol
(Maybe Text
-> Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol (Maybe Text)
-> Ap
NullCol
(Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol (Maybe Text)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"override_timezone" Col Text
CText
Ap
NullCol
(Bool
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> Ap NullCol Bool
-> Ap
NullCol
(Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Bool -> Ap NullCol Bool
forall a. Text -> Col a -> RowCodec a
col Text
"enabled" Col Bool
CBool
Ap
NullCol
(Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> RowCodec (Maybe UTCTime)
-> Ap
NullCol
(Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec (Maybe UTCTime)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"last_fired_at" Col UTCTime
CTimestamptz
Ap
NullCol
(Maybe UTCTime
-> Maybe UTCTime
-> Maybe UTCTime
-> UTCTime
-> UTCTime
-> CronScheduleRow)
-> RowCodec (Maybe UTCTime)
-> Ap
NullCol
(Maybe UTCTime
-> Maybe UTCTime -> UTCTime -> UTCTime -> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec (Maybe UTCTime)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"last_checked_at" Col UTCTime
CTimestamptz
Ap
NullCol
(Maybe UTCTime
-> Maybe UTCTime -> UTCTime -> UTCTime -> CronScheduleRow)
-> RowCodec (Maybe UTCTime)
-> Ap
NullCol (Maybe UTCTime -> UTCTime -> UTCTime -> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec (Maybe UTCTime)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"run_requested_at" Col UTCTime
CTimestamptz
Ap NullCol (Maybe UTCTime -> UTCTime -> UTCTime -> CronScheduleRow)
-> RowCodec (Maybe UTCTime)
-> Ap NullCol (UTCTime -> UTCTime -> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec (Maybe UTCTime)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"last_manual_run_at" Col UTCTime
CTimestamptz
Ap NullCol (UTCTime -> UTCTime -> CronScheduleRow)
-> RowCodec UTCTime -> Ap NullCol (UTCTime -> CronScheduleRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
"created_at" Col UTCTime
CTimestamptz
Ap NullCol (UTCTime -> CronScheduleRow)
-> RowCodec UTCTime -> RowCodec CronScheduleRow
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
"updated_at" Col UTCTime
CTimestamptz
workerRowWithHealthCodec :: RowCodec (WorkerRow, Text)
workerRowWithHealthCodec :: RowCodec (WorkerRow, Text)
workerRowWithHealthCodec =
UUID
-> Text
-> Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text)
forall {b}.
UUID
-> Text
-> Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> b
-> (WorkerRow, b)
toRow
(UUID
-> Text
-> Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
-> Ap NullCol UUID
-> Ap
NullCol
(Text
-> Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col UUID -> Ap NullCol UUID
forall a. Text -> Col a -> RowCodec a
col Text
"worker_id" Col UUID
CUuid
Ap
NullCol
(Text
-> Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
-> Ap NullCol Text
-> Ap
NullCol
(Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"queue_name" Col Text
CText
Ap
NullCol
(Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
-> Ap NullCol (Maybe Text)
-> Ap
NullCol
(Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol (Maybe Text)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"host_name" Col Text
CText
Ap
NullCol
(Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
-> Ap NullCol (Maybe Int32)
-> Ap
NullCol
(UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Int32 -> Ap NullCol (Maybe Int32)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"worker_count" Col Int32
CInt4
Ap
NullCol
(UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
-> RowCodec UTCTime
-> Ap
NullCol
(UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
"started_at" Col UTCTime
CTimestamptz
Ap
NullCol
(UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> Text
-> (WorkerRow, Text))
-> RowCodec UTCTime
-> Ap
NullCol
(Bool
-> Bool -> Double -> Maybe Value -> Text -> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
"last_heartbeat" Col UTCTime
CTimestamptz
Ap
NullCol
(Bool
-> Bool -> Double -> Maybe Value -> Text -> (WorkerRow, Text))
-> Ap NullCol Bool
-> Ap
NullCol
(Bool -> Double -> Maybe Value -> Text -> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Bool -> Ap NullCol Bool
forall a. Text -> Col a -> RowCodec a
col Text
"shutting_down" Col Bool
CBool
Ap
NullCol
(Bool -> Double -> Maybe Value -> Text -> (WorkerRow, Text))
-> Ap NullCol Bool
-> Ap NullCol (Double -> Maybe Value -> Text -> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Bool -> Ap NullCol Bool
forall a. Text -> Col a -> RowCodec a
col Text
"paused" Col Bool
CBool
Ap NullCol (Double -> Maybe Value -> Text -> (WorkerRow, Text))
-> Ap NullCol Double
-> Ap NullCol (Maybe Value -> Text -> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Double -> Ap NullCol Double
forall a. Text -> Col a -> RowCodec a
col Text
"stale_threshold_secs" Col Double
CFloat8
Ap NullCol (Maybe Value -> Text -> (WorkerRow, Text))
-> Ap NullCol (Maybe Value)
-> Ap NullCol (Text -> (WorkerRow, Text))
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Value -> Ap NullCol (Maybe Value)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"metadata" Col Value
CJsonb
Ap NullCol (Text -> (WorkerRow, Text))
-> Ap NullCol Text -> RowCodec (WorkerRow, Text)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"health" Col Text
CText
where
toRow :: UUID
-> Text
-> Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> b
-> (WorkerRow, b)
toRow UUID
wid Text
queue Maybe Text
host Maybe Int32
count UTCTime
started UTCTime
heartbeat Bool
shuttingDown Bool
paused Double
stale Maybe Value
metadata b
rawHealth =
( UUID
-> Text
-> Maybe Text
-> Maybe Int32
-> UTCTime
-> UTCTime
-> Bool
-> Bool
-> Double
-> Maybe Value
-> WorkerHealth
-> WorkerRow
WorkerRow UUID
wid Text
queue Maybe Text
host Maybe Int32
count UTCTime
started UTCTime
heartbeat Bool
shuttingDown Bool
paused Double
stale Maybe Value
metadata WorkerHealth
Live
, b
rawHealth
)
queueRowCodec :: RowCodec QueueRow
queueRowCodec :: RowCodec QueueRow
queueRowCodec =
Text
-> Bool
-> Maybe UTCTime
-> Maybe Value
-> UTCTime
-> UTCTime
-> QueueRow
QueueRow
(Text
-> Bool
-> Maybe UTCTime
-> Maybe Value
-> UTCTime
-> UTCTime
-> QueueRow)
-> Ap NullCol Text
-> Ap
NullCol
(Bool
-> Maybe UTCTime -> Maybe Value -> UTCTime -> UTCTime -> QueueRow)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Text -> Ap NullCol Text
forall a. Text -> Col a -> RowCodec a
col Text
"queue_name" Col Text
CText
Ap
NullCol
(Bool
-> Maybe UTCTime -> Maybe Value -> UTCTime -> UTCTime -> QueueRow)
-> Ap NullCol Bool
-> Ap
NullCol
(Maybe UTCTime -> Maybe Value -> UTCTime -> UTCTime -> QueueRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Bool -> Ap NullCol Bool
forall a. Text -> Col a -> RowCodec a
col Text
"paused" Col Bool
CBool
Ap
NullCol
(Maybe UTCTime -> Maybe Value -> UTCTime -> UTCTime -> QueueRow)
-> RowCodec (Maybe UTCTime)
-> Ap NullCol (Maybe Value -> UTCTime -> UTCTime -> QueueRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec (Maybe UTCTime)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"paused_at" Col UTCTime
CTimestamptz
Ap NullCol (Maybe Value -> UTCTime -> UTCTime -> QueueRow)
-> Ap NullCol (Maybe Value)
-> Ap NullCol (UTCTime -> UTCTime -> QueueRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col Value -> Ap NullCol (Maybe Value)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"metadata" Col Value
CJsonb
Ap NullCol (UTCTime -> UTCTime -> QueueRow)
-> RowCodec UTCTime -> Ap NullCol (UTCTime -> QueueRow)
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
"created_at" Col UTCTime
CTimestamptz
Ap NullCol (UTCTime -> QueueRow)
-> RowCodec UTCTime -> RowCodec QueueRow
forall a b. Ap NullCol (a -> b) -> Ap NullCol a -> Ap NullCol b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Text -> Col UTCTime -> RowCodec UTCTime
forall a. Text -> Col a -> RowCodec a
col Text
"updated_at" Col UTCTime
CTimestamptz