packages feed

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

query_getLoginTeams :: Query "getLoginTeams" ":many"
query_getLoginTeams = Query "SELECT teams.id, teams.organization_id, teams.display_name, teams.invitation_code, teams.is_deleted, teams.created_at, teams.updated_at\nFROM logins\nINNER JOIN team_members ON logins.id = team_members.login_id\nINNER JOIN teams ON team_members.team_id = teams.id\nWHERE\n    organization_id = ?\n    AND logins.id = ?\n    AND NOT logins.is_deleted\n    AND NOT teams.is_deleted\n    AND (\n        teams.id IN ?\n        OR ? IS null\n    )\nORDER BY teams.display_name ASC"

data instance Params "getLoginTeams" = Params_getLoginTeams
  {
    teams_organization_id :: Data.Int.Int32,
    logins_id :: Data.Int.Int32,
    teams_team_ids :: [Data.Int.Int32]
  }

data instance Result "getLoginTeams" = Result_getLoginTeams
  {
    teams_id :: !(Data.Int.Int32),
    teams_organization_id :: !(Data.Int.Int32),
    teams_display_name :: !(Data.Text.Text),
    teams_invitation_code :: !(Data.Text.Text),
    teams_is_deleted :: !(GHC.Base.Maybe GHC.Types.Bool),
    teams_created_at :: !((Maybe Data.Time.UTCTime)),
    teams_updated_at :: !((Maybe Data.Time.UTCTime))
  }

instance Database.PostgreSQL.Simple.ToRow.ToRow (Params "getLoginTeams") where
  toRow Params_getLoginTeams{..} =
    [ 
      Database.PostgreSQL.Simple.ToField.toField teams_organization_id, 

      Database.PostgreSQL.Simple.ToField.toField logins_id, 

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

      Database.PostgreSQL.Simple.ToField.toField (Database.PostgreSQL.Simple.In (Data.Foldable.toList teams_team_ids))
    ]

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