module AirGQL.Types.SchemaConf (
  SchemaConf (..),
  defaultSchemaConf,
) where

import Protolude (Integer)

import AirGQL.Lib (AccessMode (ReadAndWrite))
import AirGQL.Types.PragmaConf (PragmaConf, defaultConf)


data SchemaConf = SchemaConf
  { SchemaConf -> AccessMode
accessMode :: AccessMode
  , SchemaConf -> PragmaConf
pragmaConf :: PragmaConf
  , SchemaConf -> Integer
maxRowsPerTable :: Integer
  }


-- | Default schema configuration
defaultSchemaConf :: SchemaConf
defaultSchemaConf :: SchemaConf
defaultSchemaConf =
  SchemaConf
    { $sel:accessMode:SchemaConf :: AccessMode
accessMode = AccessMode
ReadAndWrite
    , $sel:pragmaConf:SchemaConf :: PragmaConf
pragmaConf = PragmaConf
AirGQL.Types.PragmaConf.defaultConf
    , $sel:maxRowsPerTable:SchemaConf :: Integer
maxRowsPerTable = Integer
100_000
    }