packages feed

keiro-dsl-0.6.0.0: test/conformance-skeletons/SkelQueue/Generated/MyService/Reservation_work/QueueCodec.hs

-- @generated by keiro-dsl; do not edit. Regenerated from the .keiro spec.

{- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@.

Deploy workers before producers when raising its schema version. Do not
adopt this codec on a non-empty bare-payload queue without draining it
(or supplying a transitional codec), or in-flight messages will
dead-letter. This is telemetry-neutral:
docs/adr/0001-keiro-pgmq-job-processing-telemetry-contract.md owns
spans and acknowledgement vocabulary.
-}
module SkelQueue.Generated.MyService.Reservation_work.QueueCodec (reservationWorkPayloadCodec, reservationWorkJobCodec) where

import Data.List.NonEmpty (NonEmpty (..))
import Keiro.Codec (Codec (..), EventType (..))
import Keiro.PGMQ.Codec (JobCodec, keiroJobCodec)
import SkelQueue.Generated.MyService.Reservation_work.Queue (ReservationWorkItem, encodeReservationWorkItem, parseReservationWorkItem)

reservationWorkPayloadCodec :: Codec ReservationWorkItem
reservationWorkPayloadCodec =
    Codec
        { eventTypes = EventType "ReservationWorkItem" :| []
        , eventType = \_ -> EventType "ReservationWorkItem"
        , schemaVersion = 1
        , encode = encodeReservationWorkItem
        , decode = \_ -> parseReservationWorkItem
        , upcasters = []
        }

reservationWorkJobCodec :: JobCodec ReservationWorkItem
reservationWorkJobCodec = keiroJobCodec reservationWorkPayloadCodec