{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_HADDOCK not-home #-}
module Arbiter.Core.Codec
(
Col (..)
, NullCol (..)
, RowCodec
, col
, ncol
, runCodec
, codecColumns
, joinColumns
, ParamType (..)
, SomeParam (..)
, Params
, pval
, pnul
, parr
, pnarr
, Codec
, cColumns
, cScalar
, cArray
, jobCodec
, payloadWriteCodec
, 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.Text qualified as T
import Data.Time (UTCTime)
import Data.UUID.Types (UUID)
import Arbiter.Core.Admission (splitPrefixedSuffix)
import Arbiter.Core.Concurrency.Spec (toConcurrencyKey)
import Arbiter.Core.Concurrency.Stats (ConcurrencyKeyView (..), ConcurrencyPolicyView (..))
import Arbiter.Core.CronSchedule (CronScheduleRow (..))
import Arbiter.Core.Job.Dedup (dedupFromParts)
import Arbiter.Core.Job.Types
( DedupKey (..)
, JobRead
, JobWrite
, PayloadColumns (..)
, PayloadKeys (..)
, Stored
, TraceContext (..)
, dedupParts
, defaultMaxAttempts
, minMaxAttempts
, toTraceContext
)
import Arbiter.Core.Job.Types qualified as JT
import Arbiter.Core.Job.Types.Internal (JobRecord (Job))
import Arbiter.Core.Json (decodeOrEmpty)
import Arbiter.Core.Queues (QueueRow (..))
import Arbiter.Core.RateLimit.Spec (toRateLimitKey)
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
CStored :: Col (Stored payload)
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 payload. Text -> Col payload -> NullCol (Maybe payload)
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]
joinColumns :: [Text] -> Text
joinColumns :: [Text] -> Text
joinColumns = Text -> [Text] -> Text
T.intercalate Text
", "
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 payload. ParamType payload -> payload -> 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 payload. ParamType payload -> payload -> SomeParam
SomeParam (Col a -> ParamType (Maybe a)
forall payload. Col payload -> ParamType (Maybe payload)
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 payload. ParamType payload -> payload -> SomeParam
SomeParam (Col a -> ParamType [a]
forall payload. Col payload -> ParamType [payload]
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 payload. ParamType payload -> payload -> SomeParam
SomeParam (Col a -> ParamType [Maybe a]
forall payload. Col payload -> ParamType [Maybe payload]
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]
}
deriving stock ((forall a b. (a -> b) -> Codec s a -> Codec s b)
-> (forall a b. a -> Codec s b -> Codec s a) -> Functor (Codec s)
forall a b. a -> Codec s b -> Codec s a
forall a b. (a -> b) -> Codec s a -> Codec s b
forall s a b. a -> Codec s b -> Codec s a
forall s a b. (a -> b) -> Codec s a -> Codec s b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
$cfmap :: forall s a b. (a -> b) -> Codec s a -> Codec s b
fmap :: forall a b. (a -> b) -> Codec s a -> Codec s b
$c<$ :: forall s a b. a -> Codec s b -> Codec s a
<$ :: forall a b. a -> Codec s b -> Codec s a
Functor)
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 s a
codec = Codec s a
codec {cWrite = map retarget (cWrite codec)}
where
retarget :: WriteCol s -> WriteCol t
retarget (WCol Text
name Col a
colType s -> a
get) = Text -> Col a -> (t -> a) -> WriteCol t
forall payload s.
Text -> Col payload -> (s -> payload) -> 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 payload s.
Text -> Col payload -> (s -> Maybe payload) -> 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 Applicative (Codec s) where
pure :: forall a. a -> Codec s a
pure a
value = Codec {cDecode :: RowCodec a
cDecode = a -> RowCodec a
forall a. a -> Ap NullCol a
forall (f :: * -> *) a. Applicative f => a -> f a
pure a
value, cWrite :: [WriteCol s]
cWrite = []}
Codec s (a -> b)
codecFn <*> :: forall a b. Codec s (a -> b) -> Codec s a -> Codec s b
<*> Codec s a
codecArg =
Codec
{ cDecode :: RowCodec b
cDecode = Codec s (a -> b) -> RowCodec (a -> b)
forall s a. Codec s a -> RowCodec a
cDecode Codec s (a -> b)
codecFn RowCodec (a -> b) -> Ap NullCol 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
<*> Codec s a -> Ap NullCol a
forall s a. Codec s a -> RowCodec a
cDecode Codec s a
codecArg
, cWrite :: [WriteCol s]
cWrite = Codec s (a -> b) -> [WriteCol s]
forall s a. Codec s a -> [WriteCol s]
cWrite Codec s (a -> b)
codecFn [WriteCol s] -> [WriteCol s] -> [WriteCol s]
forall a. Semigroup a => a -> a -> a
<> Codec s a -> [WriteCol s]
forall s a. Codec s a -> [WriteCol s]
cWrite Codec s a
codecArg
}
rw :: Text -> Col a -> Codec a a
rw :: forall a. Text -> Col a -> Codec a a
rw Text
name Col a
colType = Codec {cDecode :: RowCodec a
cDecode = Text -> Col a -> RowCodec a
forall a. Text -> Col a -> RowCodec a
col Text
name Col a
colType, cWrite :: [WriteCol a]
cWrite = [Text -> Col a -> (a -> a) -> WriteCol a
forall payload s.
Text -> Col payload -> (s -> payload) -> 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 = Codec {cDecode :: RowCodec (Maybe a)
cDecode = Text -> Col a -> RowCodec (Maybe a)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
name Col a
colType, cWrite :: [WriteCol (Maybe a)]
cWrite = [Text -> Col a -> (Maybe a -> Maybe a) -> WriteCol (Maybe a)
forall payload s.
Text -> Col payload -> (s -> Maybe payload) -> 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 = Codec {cDecode :: RowCodec a
cDecode = RowCodec a
decode, cWrite :: [WriteCol s]
cWrite = []}
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 = Codec {cDecode :: RowCodec ()
cDecode = () -> RowCodec ()
forall a. a -> Ap NullCol a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (), cWrite :: [WriteCol s]
cWrite = [Text -> Col a -> (s -> a) -> WriteCol s
forall payload s.
Text -> Col payload -> (s -> payload) -> 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
CStored -> 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 (Stored stored))
jobCodec :: forall payload stored.
Text -> Codec (JobWriteSource payload) (JobRead (Stored stored))
jobCodec = Text
-> Text -> Codec (JobWriteSource payload) (JobRead (Stored stored))
forall payload stored.
Text
-> Text -> Codec (JobWriteSource payload) (JobRead (Stored stored))
jobCodecWith Text
"id"
jobCodecWith :: Text -> Text -> Codec (JobWriteSource payload) (JobRead (Stored stored))
jobCodecWith :: forall payload stored.
Text
-> Text -> Codec (JobWriteSource payload) (JobRead (Stored stored))
jobCodecWith Text
idColumn Text
queueName =
Int64
-> Stored stored
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys
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
-> Stored stored
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) Int64
-> Codec
(JobWriteSource payload)
(Stored stored
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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)
(Stored stored
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) (Stored stored)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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 (Stored stored)
-> Codec (JobWriteSource payload) (Stored stored)
forall a s. RowCodec a -> Codec s a
ro (Text -> Col (Stored stored) -> RowCodec (Stored stored)
forall a. Text -> Col a -> RowCodec a
col Text
"payload" Col (Stored stored)
forall payload. Col (Stored payload)
CStored)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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 (Job payload () () () () -> Maybe Text
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Maybe Text
JT.groupKey (Job payload () () () () -> Maybe Text)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Maybe Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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 (Job payload () () () () -> Int32
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Int32
JT.priority (Job payload () () () () -> Int32)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Int32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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 (Job payload () () () () -> Maybe UTCTime
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Maybe UTCTime
JT.notVisibleUntil (Job payload () () () () -> Maybe UTCTime)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Maybe UTCTime
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) (Maybe DedupKey)
-> Codec
(JobWriteSource payload)
(Maybe Int32
-> Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) (Maybe Int32)
-> Codec
(JobWriteSource payload)
(Maybe Int64
-> Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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 -> Int32 -> Int32
forall a. Ord a => a -> a -> a
max Int32
minMaxAttempts (Int32 -> Int32)
-> (JobWriteSource payload -> Int32)
-> JobWriteSource payload
-> 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
. Job payload () () () () -> Maybe Int32
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Maybe Int32
JT.maxAttempts (Job payload () () () () -> Maybe Int32)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Maybe Int32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) (Maybe Int64)
-> Codec
(JobWriteSource payload)
(Maybe Value
-> Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) (Maybe Value)
-> Codec
(JobWriteSource payload)
(Maybe TraceContext
-> Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) (Maybe TraceContext)
-> Codec
(JobWriteSource payload)
(Bool
-> Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) Bool
-> Codec
(JobWriteSource payload)
(Maybe UUID
-> Int64
-> Maybe Int32
-> PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) (Maybe UUID)
-> Codec
(JobWriteSource payload)
(Int64
-> Maybe Int32
-> PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) Int64
-> Codec
(JobWriteSource payload)
(Maybe Int32
-> PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) (Maybe Int32)
-> Codec
(JobWriteSource payload)
(PayloadKeys
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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 (Job payload () () () () -> Maybe Int32
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Maybe Int32
JT.archiveFor (Job payload () () () () -> Maybe Int32)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Maybe Int32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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
-> JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
-> Codec (JobWriteSource payload) PayloadKeys
-> Codec
(JobWriteSource payload)
(JobRecord (Stored stored) Int64 Text UTCTime PayloadKeys)
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, PayloadColumns))
-> Codec (Value, PayloadColumns) PayloadKeys
-> Codec (JobWriteSource payload) PayloadKeys
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (\JobWriteSource payload
source -> (JobWriteSource payload -> Value
forall payload. JobWriteSource payload -> Value
sourceEncoded JobWriteSource payload
source, JobWriteSource payload -> PayloadColumns
forall payload. JobWriteSource payload -> PayloadColumns
sourceColumns JobWriteSource payload
source)) Codec (Value, PayloadColumns) PayloadKeys
payloadWriteCodec
jobRowCodec :: forall payload. Text -> RowCodec (JobRead (Stored payload))
jobRowCodec :: forall payload. Text -> RowCodec (JobRead (Stored payload))
jobRowCodec Text
queueName = Codec (JobWriteSource Value) (JobRead (Stored payload))
-> RowCodec (JobRead (Stored payload))
forall s a. Codec s a -> RowCodec a
cDecode (Text -> Codec (JobWriteSource Value) (JobRead (Stored payload))
forall payload stored.
Text -> Codec (JobWriteSource payload) (JobRead (Stored stored))
jobCodec Text
queueName :: JobCodec (JobRead (Stored payload)))
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
. Job payload () () () () -> Maybe TraceContext
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Maybe TraceContext
JT.traceContext (Job payload () () () () -> Maybe TraceContext)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Maybe TraceContext
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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
. Job payload () () () () -> Maybe TraceContext
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Maybe TraceContext
JT.traceContext (Job payload () () () () -> Maybe TraceContext)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Maybe TraceContext
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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
dedupFromParts
(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
. Job payload () () () () -> Maybe DedupKey
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Maybe DedupKey
JT.dedupKey (Job payload () () () () -> Maybe DedupKey)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Maybe DedupKey
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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
. Job payload () () () () -> Maybe DedupKey
forall payload key q insertedAt adm.
Job payload key q insertedAt adm -> Maybe DedupKey
JT.dedupKey (Job payload () () () () -> Maybe DedupKey)
-> (JobWriteSource payload -> Job payload () () () ())
-> JobWriteSource payload
-> Maybe DedupKey
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JobWriteSource payload -> Job 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)
payloadWriteCodec :: Codec (Value, PayloadColumns) PayloadKeys
payloadWriteCodec :: Codec (Value, PayloadColumns) PayloadKeys
payloadWriteCodec = Text
-> Col Value
-> ((Value, PayloadColumns) -> Value)
-> Codec (Value, PayloadColumns) ()
forall a s. Text -> Col a -> (s -> a) -> Codec s ()
wo Text
"payload" Col Value
CJsonb (Value, PayloadColumns) -> Value
forall a b. (a, b) -> a
fst Codec (Value, PayloadColumns) ()
-> Codec (Value, PayloadColumns) PayloadKeys
-> Codec (Value, PayloadColumns) PayloadKeys
forall a b.
Codec (Value, PayloadColumns) a
-> Codec (Value, PayloadColumns) b
-> Codec (Value, PayloadColumns) b
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b
*> ((Value, PayloadColumns) -> PayloadColumns)
-> Codec PayloadColumns PayloadKeys
-> Codec (Value, PayloadColumns) PayloadKeys
forall t s a. (t -> s) -> Codec s a -> Codec t a
lmap (Value, PayloadColumns) -> PayloadColumns
forall a b. (a, b) -> b
snd Codec PayloadColumns PayloadKeys
payloadCodec
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
toRateLimitKey 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
toConcurrencyKey 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
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 (Codec (JobWriteSource Value) (JobRead (Stored Value))
-> [(Text, Text)]
forall s a. Codec s a -> [(Text, Text)]
cColumns (Text -> Codec (JobWriteSource Value) (JobRead (Stored Value))
forall payload stored.
Text -> Codec (JobWriteSource payload) (JobRead (Stored stored))
jobCodec Text
"" :: JobCodec (JobRead (Stored Value))))
jobEnvelopeCodec :: forall payload. Text -> Text -> RowCodec (Int64, UTCTime, JobRead (Stored payload))
jobEnvelopeCodec :: forall payload.
Text -> Text -> RowCodec (Int64, UTCTime, JobRead (Stored payload))
jobEnvelopeCodec Text
tsColumn Text
queueName =
(,,)
(Int64
-> UTCTime
-> JobRead (Stored payload)
-> (Int64, UTCTime, JobRead (Stored payload)))
-> RowCodec Int64
-> Ap
NullCol
(UTCTime
-> JobRead (Stored payload)
-> (Int64, UTCTime, JobRead (Stored payload)))
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 (Stored payload)
-> (Int64, UTCTime, JobRead (Stored payload)))
-> RowCodec UTCTime
-> Ap
NullCol
(JobRead (Stored payload)
-> (Int64, UTCTime, JobRead (Stored payload)))
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 (Stored payload)
-> (Int64, UTCTime, JobRead (Stored payload)))
-> Ap NullCol (JobRead (Stored payload))
-> Ap NullCol (Int64, UTCTime, JobRead (Stored payload))
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 (Stored payload))
-> Ap NullCol (JobRead (Stored payload))
forall s a. Codec s a -> RowCodec a
cDecode (Text
-> Text -> Codec (JobWriteSource Value) (JobRead (Stored payload))
forall payload stored.
Text
-> Text -> Codec (JobWriteSource payload) (JobRead (Stored stored))
jobCodecWith Text
"job_id" Text
queueName :: JobCodec (JobRead (Stored payload)))
dlqRowCodec :: Text -> RowCodec (Int64, UTCTime, JobRead (Stored payload))
dlqRowCodec :: forall payload.
Text -> RowCodec (Int64, UTCTime, JobRead (Stored payload))
dlqRowCodec = Text -> Text -> RowCodec (Int64, UTCTime, JobRead (Stored payload))
forall payload.
Text -> Text -> RowCodec (Int64, UTCTime, JobRead (Stored payload))
jobEnvelopeCodec Text
"failed_at"
archiveRowCodec :: Text -> RowCodec (Int64, UTCTime, JobRead (Stored payload), Maybe Value)
archiveRowCodec :: forall payload.
Text
-> RowCodec (Int64, UTCTime, JobRead (Stored payload), Maybe Value)
archiveRowCodec Text
queueName =
(\(Int64
envelopeId, UTCTime
completed, JobRead (Stored payload)
job) Maybe Value
result -> (Int64
envelopeId, UTCTime
completed, JobRead (Stored payload)
job, Maybe Value
result))
((Int64, UTCTime, JobRead (Stored payload))
-> Maybe Value
-> (Int64, UTCTime, JobRead (Stored payload), Maybe Value))
-> Ap NullCol (Int64, UTCTime, JobRead (Stored payload))
-> Ap
NullCol
(Maybe Value
-> (Int64, UTCTime, JobRead (Stored payload), Maybe Value))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text
-> Text -> Ap NullCol (Int64, UTCTime, JobRead (Stored payload))
forall payload.
Text -> Text -> RowCodec (Int64, UTCTime, JobRead (Stored payload))
jobEnvelopeCodec Text
"completed_at" Text
queueName
Ap
NullCol
(Maybe Value
-> (Int64, UTCTime, JobRead (Stored payload), Maybe Value))
-> Ap NullCol (Maybe Value)
-> Ap
NullCol (Int64, UTCTime, JobRead (Stored payload), 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
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView
RateLimitPolicyView
(Text
-> Double
-> Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol Text
-> Ap
NullCol
(Double
-> Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> [Text]
-> 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
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol Double
-> Ap
NullCol
(Double
-> Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> [Text]
-> 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
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol Double
-> Ap
NullCol
(Double
-> Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> [Text]
-> 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
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol Double
-> Ap
NullCol
(Maybe Double
-> Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> [Text]
-> 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
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol (Maybe Double)
-> Ap
NullCol
(Maybe Double
-> Maybe Double
-> Int64
-> Int64
-> [Text]
-> 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
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol (Maybe Double)
-> Ap
NullCol
(Maybe Double
-> Int64
-> Int64
-> [Text]
-> 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
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> Ap NullCol (Maybe Double)
-> Ap
NullCol
(Int64
-> Int64
-> [Text]
-> 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
-> [Text]
-> Maybe Double
-> Maybe Double
-> RateLimitPolicyView)
-> RowCodec Int64
-> Ap
NullCol
(Int64
-> [Text] -> 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
-> [Text] -> Maybe Double -> Maybe Double -> RateLimitPolicyView)
-> RowCodec Int64
-> Ap
NullCol
([Text] -> 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
([Text] -> Maybe Double -> Maybe Double -> RateLimitPolicyView)
-> Ap NullCol [Text]
-> 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
<*> (Value -> [Text]
forall a. (FromJSON a, Monoid a) => Value -> a
decodeOrEmpty (Value -> [Text]) -> Ap NullCol Value -> Ap NullCol [Text]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Value -> Ap NullCol Value
forall a. Text -> Col a -> RowCodec a
col Text
"throttled_queues" Col Value
CJsonb)
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 =
( WorkerRow
{ workerId :: UUID
workerId = UUID
wid
, queueName :: Text
queueName = Text
queue
, hostName :: Maybe Text
hostName = Maybe Text
host
, workerCount :: Maybe Int32
workerCount = Maybe Int32
count
, startedAt :: UTCTime
startedAt = UTCTime
started
, lastHeartbeat :: UTCTime
lastHeartbeat = UTCTime
heartbeat
, shuttingDown :: Bool
shuttingDown = Bool
shuttingDown
, paused :: Bool
paused = Bool
paused
, staleThresholdSecs :: Double
staleThresholdSecs = Double
stale
, metadata :: Maybe Value
metadata = Maybe Value
metadata
, health :: WorkerHealth
health = WorkerHealth
Live
}
, b
rawHealth
)
queueRowCodec :: RowCodec QueueRow
queueRowCodec :: RowCodec QueueRow
queueRowCodec =
Text
-> Bool
-> Maybe UTCTime
-> Maybe Value
-> UTCTime
-> UTCTime
-> Maybe NominalDiffTime
-> QueueRow
QueueRow
(Text
-> Bool
-> Maybe UTCTime
-> Maybe Value
-> UTCTime
-> UTCTime
-> Maybe NominalDiffTime
-> QueueRow)
-> Ap NullCol Text
-> Ap
NullCol
(Bool
-> Maybe UTCTime
-> Maybe Value
-> UTCTime
-> UTCTime
-> Maybe NominalDiffTime
-> 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
-> Maybe NominalDiffTime
-> QueueRow)
-> Ap NullCol Bool
-> Ap
NullCol
(Maybe UTCTime
-> Maybe Value
-> UTCTime
-> UTCTime
-> Maybe NominalDiffTime
-> 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
-> Maybe NominalDiffTime
-> QueueRow)
-> RowCodec (Maybe UTCTime)
-> Ap
NullCol
(Maybe Value
-> UTCTime -> UTCTime -> Maybe NominalDiffTime -> 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 -> Maybe NominalDiffTime -> QueueRow)
-> Ap NullCol (Maybe Value)
-> Ap
NullCol (UTCTime -> UTCTime -> Maybe NominalDiffTime -> 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 -> Maybe NominalDiffTime -> QueueRow)
-> RowCodec UTCTime
-> Ap NullCol (UTCTime -> Maybe NominalDiffTime -> 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 -> Maybe NominalDiffTime -> QueueRow)
-> RowCodec UTCTime
-> Ap NullCol (Maybe NominalDiffTime -> 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
Ap NullCol (Maybe NominalDiffTime -> QueueRow)
-> Ap NullCol (Maybe NominalDiffTime) -> 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
<*> ((Int64 -> NominalDiffTime) -> Maybe Int64 -> Maybe NominalDiffTime
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Int64 -> NominalDiffTime
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Maybe Int64 -> Maybe NominalDiffTime)
-> Ap NullCol (Maybe Int64) -> Ap NullCol (Maybe NominalDiffTime)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> Col Int64 -> Ap NullCol (Maybe Int64)
forall a. Text -> Col a -> RowCodec (Maybe a)
ncol Text
"dlq_retention_secs" Col Int64
CInt8)