packages feed

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

query_getIncidentEvents :: Query "getIncidentEvents" ":many"
query_getIncidentEvents = Query "SELECT\n  incident_events.id, incident_id, incident_events.type, incident_events.failing_monitor, notification_recipients, incident_events.acknowledged_by, resolved_by, incident_events.created_at, incidents.id, incidents.organization_id, display_name, description, incidents.failing_monitor, status, lead_by, incidents.acknowledged_by, unacknowledged_at, incidents.created_at, incidents.updated_at, monitors.id, monitors.organization_id, name, monitors.type, healthiness, monitor_group, threshold_failures, is_active, is_deleted, last_checked, monitors.created_at, monitors.updated_at, escalation_policy_id\nFROM\n  incident_events\n  JOIN incidents ON incident_events.incident_id = incidents.id\n  LEFT JOIN monitors ON monitors.id = incident_events.failing_monitor\nWHERE\n  incidents.organization_id = ?\n  AND (\n    incidents.id = ANY(?::BIGINT [])\n    OR incident_events.failing_monitor = ANY(?::INT [])\n  )\n  ORDER BY incident_events.created_at ASC\n  LIMIT ?"

data instance Params "getIncidentEvents" = Params_getIncidentEvents
  {
    incidents_organization_id :: Data.Int.Int32,
    limit :: Data.Int.Int64,
    incident_ids :: Data.Vector.Vector Data.Int.Int64,
    monitor_ids :: Data.Vector.Vector Data.Int.Int32
  }

data instance Result "getIncidentEvents" = Result_getIncidentEvents
  {
    incident_events_id :: !(Data.Int.Int64),
    incident_events_incident_id :: !(Data.Int.Int64),
    incident_events_type :: !((Pulse.Database.Types.Enum "event_type")),
    incident_events_failing_monitor :: !(GHC.Base.Maybe Data.Int.Int32),
    incident_events_notification_recipients :: !(GHC.Base.Maybe Data.Int.Int32),
    incident_events_acknowledged_by :: !(GHC.Base.Maybe Data.Int.Int32),
    incident_events_resolved_by :: !(GHC.Base.Maybe Data.Int.Int32),
    incident_events_created_at :: !((Maybe Data.Time.UTCTime)),
    incidents_id :: !(Data.Int.Int64),
    incidents_organization_id :: !(Data.Int.Int32),
    incidents_display_name :: !(Data.Text.Text),
    incidents_description :: !(GHC.Base.Maybe Data.Text.Text),
    incidents_failing_monitor :: !(GHC.Base.Maybe Data.Int.Int32),
    incidents_status :: !((Pulse.Database.Types.Enum "incident_status")),
    incidents_lead_by :: !(GHC.Base.Maybe Data.Int.Int32),
    incidents_acknowledged_by :: !(GHC.Base.Maybe Data.Int.Int32),
    incidents_unacknowledged_at :: !((Maybe Data.Time.UTCTime)),
    incidents_created_at :: !((Maybe Data.Time.UTCTime)),
    incidents_updated_at :: !((Maybe Data.Time.UTCTime)),
    monitors_id :: !(GHC.Base.Maybe Data.Int.Int32),
    monitors_organization_id :: !(GHC.Base.Maybe Data.Int.Int32),
    monitors_name :: !(GHC.Base.Maybe Data.Text.Text),
    monitors_type :: !(GHC.Base.Maybe ((Pulse.Database.Types.Enum "monitor_type"))),
    monitors_healthiness :: !(GHC.Base.Maybe ((Pulse.Database.Types.Enum "monitor_healthiness"))),
    monitors_monitor_group :: !(GHC.Base.Maybe Data.Text.Text),
    monitors_threshold_failures :: !(GHC.Base.Maybe Data.Int.Int32),
    monitors_is_active :: !(GHC.Base.Maybe GHC.Types.Bool),
    monitors_is_deleted :: !(GHC.Base.Maybe 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 :: !(GHC.Base.Maybe Data.Int.Int32)
  }

instance Database.PostgreSQL.Simple.ToRow.ToRow (Params "getIncidentEvents") where
  toRow Params_getIncidentEvents{..} =
    [ 
      Database.PostgreSQL.Simple.ToField.toField incidents_organization_id, 

      Database.PostgreSQL.Simple.ToField.toField incident_ids, 

      Database.PostgreSQL.Simple.ToField.toField monitor_ids, 

      Database.PostgreSQL.Simple.ToField.toField limit
    ]

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