packages feed

sqlc-hs-0.2.0.0: test/golden/out/Pulse/Database/GetLatestSampledOpcuaAttributeValues.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.GetLatestSampledOpcuaAttributeValues 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 Data.Vector
import qualified Pulse.Database.DBTypes
import qualified Data.Time
import qualified Data.Time.LocalTime
import qualified Data.Foldable

query_getLatestSampledOpcuaAttributeValues :: Query "getLatestSampledOpcuaAttributeValues" ":many"
query_getLatestSampledOpcuaAttributeValues = Query "SELECT DISTINCT ON (endpoint_monitor_id, attribute_id, opcua_node_id)\n    endpoint_monitor_id,\n    attribute_id,\n    opcua_node_id,\n    value_type,\n    value,\n    created_at,\n    (NOW() - created_at)::INTERVAL AS age\nFROM\n    opcua_attribute_values\nWHERE\n    endpoint_monitor_id = ANY(?::INTEGER [])\n    AND opcua_node_id = ANY(?::OPCUA_NODE_ID [])\n    AND attribute_id = ANY(?::OPCUA_ATTRIBUTE_ID [])\nORDER BY\n    endpoint_monitor_id ASC,\n    attribute_id ASC,\n    opcua_node_id ASC,\n    created_at DESC"

data instance Params "getLatestSampledOpcuaAttributeValues" = Params_getLatestSampledOpcuaAttributeValues
  {
    endpoint_monitor_ids :: Data.Vector.Vector Data.Int.Int32,
    node_ids :: Data.Vector.Vector Pulse.Database.DBTypes.OpcuaNodeId,
    attribute_ids :: Data.Vector.Vector Pulse.Database.DBTypes.OpcuaAttributeId
  }

data instance Result "getLatestSampledOpcuaAttributeValues" = Result_getLatestSampledOpcuaAttributeValues
  {
    opcua_attribute_values_endpoint_monitor_id :: !(Data.Int.Int32),
    opcua_attribute_values_attribute_id :: !(Pulse.Database.DBTypes.OpcuaAttributeId),
    opcua_attribute_values_opcua_node_id :: !(Pulse.Database.DBTypes.OpcuaNodeId),
    opcua_attribute_values_value_type :: !(Pulse.Database.DBTypes.OpcuaDataValueType),
    opcua_attribute_values_value :: !(Pulse.Database.DBTypes.OpcuaDataValue),
    opcua_attribute_values_created_at :: !((Maybe Data.Time.UTCTime)),
    age :: !(Data.Time.LocalTime.CalendarDiffTime)
  }

instance Database.PostgreSQL.Simple.ToRow.ToRow (Params "getLatestSampledOpcuaAttributeValues") where
  toRow Params_getLatestSampledOpcuaAttributeValues{..} =
    [ 
      Database.PostgreSQL.Simple.ToField.toField endpoint_monitor_ids, 

      Database.PostgreSQL.Simple.ToField.toField node_ids, 

      Database.PostgreSQL.Simple.ToField.toField attribute_ids
    ]

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