packages feed

sqel-0.0.1.0: lib/Sqel/Data/QuerySchema.hs

module Sqel.Data.QuerySchema where

import Sqel.Data.Codec (Encoder)
import Sqel.Data.SelectExpr (SelectFragment)
import Sqel.Data.Sql (ToSql (toSql))
import Sqel.Data.SqlFragment (SelectQuery (SelectQuery))

data QuerySchema q a =
  QuerySchema {
    frags :: [SelectFragment],
    encoder :: Encoder q
  }
  deriving stock (Generic)

emptyQuerySchema :: QuerySchema () a
emptyQuerySchema =
  QuerySchema mempty mempty

instance ToSql (SelectQuery (QuerySchema q a)) where
  toSql (SelectQuery (QuerySchema frags _)) =
    toSql frags