packages feed

sqlc-hs-0.2.0.0: test/golden/out/Pulse/Database/UpdateIncidentEscalation.hs

{- This file was auto-generated from queries.sql by sqlc-hs. -}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
module Pulse.Database.UpdateIncidentEscalation where

import Pulse.Database.Internal (Query(..), Enum, Params, Result)
import qualified Database.PostgreSQL.Simple
import qualified Database.PostgreSQL.Simple.FromRow
import qualified Database.PostgreSQL.Simple.ToField
import qualified Database.PostgreSQL.Simple.ToRow

import qualified Data.Int
import qualified GHC.Base
import qualified Data.Time
import qualified GHC.Types
import qualified Data.Foldable

query_updateIncidentEscalation :: Query "updateIncidentEscalation" ":one"
query_updateIncidentEscalation = Query "UPDATE incident_escalations\nSET\n    current_step = COALESCE(?::INTEGER, incident_escalations.current_step),\n    next_escalation_at = COALESCE(?::TIMESTAMP WITH TIME ZONE, incident_escalations.next_escalation_at),\n    is_active = COALESCE(?::BOOLEAN, incident_escalations.is_active),\n    updated_at = NOW()\nWHERE id = ?\nRETURNING id, escalation_policy_id, current_step, escalation_started_at, next_escalation_at, is_active, threshold, failed_checks, incident_notification_sent_at, resolved_notification_sent_at, acknowledged_notification_sent_at, created_at, updated_at"

data instance Params "updateIncidentEscalation" = Params_updateIncidentEscalation
  {
    incident_escalations_id :: Data.Int.Int64,
    current_step :: GHC.Base.Maybe Data.Int.Int32,
    next_escalation_at :: (Maybe Data.Time.UTCTime),
    is_active :: GHC.Base.Maybe GHC.Types.Bool
  }

data instance Result "updateIncidentEscalation" = Result_updateIncidentEscalation
  {
    incident_escalations_id :: !(Data.Int.Int64),
    incident_escalations_escalation_policy_id :: !(Data.Int.Int32),
    incident_escalations_current_step :: !(Data.Int.Int32),
    incident_escalations_escalation_started_at :: !((Maybe Data.Time.UTCTime)),
    incident_escalations_next_escalation_at :: !((Maybe Data.Time.UTCTime)),
    incident_escalations_is_active :: !(GHC.Types.Bool),
    incident_escalations_threshold :: !(Data.Int.Int32),
    incident_escalations_failed_checks :: !(Data.Int.Int32),
    incident_escalations_incident_notification_sent_at :: !((Maybe Data.Time.UTCTime)),
    incident_escalations_resolved_notification_sent_at :: !((Maybe Data.Time.UTCTime)),
    incident_escalations_acknowledged_notification_sent_at :: !((Maybe Data.Time.UTCTime)),
    incident_escalations_created_at :: !((Maybe Data.Time.UTCTime)),
    incident_escalations_updated_at :: !((Maybe Data.Time.UTCTime))
  }

instance Database.PostgreSQL.Simple.ToRow.ToRow (Params "updateIncidentEscalation") where
  toRow Params_updateIncidentEscalation{..} =
    [ 
      Database.PostgreSQL.Simple.ToField.toField current_step, 

      Database.PostgreSQL.Simple.ToField.toField next_escalation_at, 

      Database.PostgreSQL.Simple.ToField.toField is_active, 

      Database.PostgreSQL.Simple.ToField.toField incident_escalations_id
    ]

instance Database.PostgreSQL.Simple.FromRow.FromRow (Result "updateIncidentEscalation") where
  fromRow =
    pure Result_updateIncidentEscalation
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field
      <*> Database.PostgreSQL.Simple.FromRow.field