packages feed

sqlc-hs-0.2.0.0: test/golden/out/Pulse/Database/GetOpcuaNodeMonitorsToCheck.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.GetOpcuaNodeMonitorsToCheck 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.Types
import qualified GHC.Base
import qualified Data.Text
import qualified Pulse.Database.Types
import qualified Data.Time
import qualified Pulse.Database.DBTypes
import qualified Data.Time.LocalTime
import qualified Data.Foldable

query_getOpcuaNodeMonitorsToCheck :: Query "getOpcuaNodeMonitorsToCheck" ":many"
query_getOpcuaNodeMonitorsToCheck = Query "SELECT monitors.id, organization_id, name, type, healthiness, monitor_group, threshold_failures, is_active, is_deleted, last_checked, monitors.created_at, monitors.updated_at, escalation_policy_id, opcua_node_monitors.id, endpoint_monitor_id, opcua_node_id, aggregation, operation, operand, duration, frequency, incident_message_template, opcua_node_monitors.created_at, opcua_node_monitors.updated_at\nFROM\n    monitors\nINNER JOIN\n    opcua_node_monitors ON monitors.id = opcua_node_monitors.id\nWHERE\n    monitors.organization_id = ?\n    AND monitors.type = 'opcua_node'\n    AND monitors.is_active\n    AND NOT monitors.is_deleted\n    AND opcua_node_monitors.endpoint_monitor_id IN ?\n    AND\n    ( COALESCE (?::BOOLEAN, false)\n      OR monitors.last_checked IS NULL\n      OR monitors.last_checked + opcua_node_monitors.frequency <= NOW ()\n    )"

data instance Params "getOpcuaNodeMonitorsToCheck" = Params_getOpcuaNodeMonitorsToCheck
  {
    monitors_organization_id :: Data.Int.Int32,
    opcua_node_monitors_endpoint_monitor_ids :: [Data.Int.Int32],
    override :: GHC.Base.Maybe GHC.Types.Bool
  }

data instance Result "getOpcuaNodeMonitorsToCheck" = Result_getOpcuaNodeMonitorsToCheck
  {
    monitors_id :: !(Data.Int.Int32),
    monitors_organization_id :: !(Data.Int.Int32),
    monitors_name :: !(Data.Text.Text),
    monitors_type :: !((Pulse.Database.Types.Enum "monitor_type")),
    monitors_healthiness :: !((Pulse.Database.Types.Enum "monitor_healthiness")),
    monitors_monitor_group :: !(Data.Text.Text),
    monitors_threshold_failures :: !(Data.Int.Int32),
    monitors_is_active :: !(GHC.Types.Bool),
    monitors_is_deleted :: !(GHC.Types.Bool),
    monitors_last_checked :: !((Maybe Data.Time.UTCTime)),
    monitors_created_at :: !((Maybe Data.Time.UTCTime)),
    monitors_updated_at :: !((Maybe Data.Time.UTCTime)),
    monitors_escalation_policy_id :: !(Data.Int.Int32),
    opcua_node_monitors_id :: !(Data.Int.Int32),
    opcua_node_monitors_endpoint_monitor_id :: !(Data.Int.Int32),
    opcua_node_monitors_opcua_node_id :: !(Pulse.Database.DBTypes.OpcuaNodeId),
    opcua_node_monitors_aggregation :: !((Pulse.Database.Types.Enum "check_aggregation")),
    opcua_node_monitors_operation :: !((Pulse.Database.Types.Enum "check_op")),
    opcua_node_monitors_operand :: !(Data.Text.Text),
    opcua_node_monitors_duration :: !(Data.Time.LocalTime.CalendarDiffTime),
    opcua_node_monitors_frequency :: !(Data.Time.LocalTime.CalendarDiffTime),
    opcua_node_monitors_incident_message_template :: !(GHC.Base.Maybe Data.Text.Text),
    opcua_node_monitors_created_at :: !((Maybe Data.Time.UTCTime)),
    opcua_node_monitors_updated_at :: !((Maybe Data.Time.UTCTime))
  }

instance Database.PostgreSQL.Simple.ToRow.ToRow (Params "getOpcuaNodeMonitorsToCheck") where
  toRow Params_getOpcuaNodeMonitorsToCheck{..} =
    [ 
      Database.PostgreSQL.Simple.ToField.toField monitors_organization_id, 

      Database.PostgreSQL.Simple.ToField.toField (Database.PostgreSQL.Simple.In (Data.Foldable.toList opcua_node_monitors_endpoint_monitor_ids)), 

      Database.PostgreSQL.Simple.ToField.toField override
    ]

instance Database.PostgreSQL.Simple.FromRow.FromRow (Result "getOpcuaNodeMonitorsToCheck") where
  fromRow =
    pure Result_getOpcuaNodeMonitorsToCheck
      <*> 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
      <*> 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