module OptimaForHasql.Param where

import qualified Data.Text.Encoding as Text
import Optima
import OptimaForHasql.Prelude

-- |
-- Amount of connections in the pool.
poolSize :: Param Int
poolSize :: Param Int
poolSize =
  forall a. Text -> Default a -> ValueFormat a -> Value a -> Param a
value
    Text
"Amount of connections in the pool"
    (forall a. Show a => a -> Default a
showable Int
1)
    forall a. ValueFormat a
unformatted
    forall a. LenientParser a => Value a
implicitlyParsed

-- |
-- How long it takes until the attempt to connect is considered timed out.
-- In microseconds.
poolAcquisitionTimeout :: Param (Maybe Int)
poolAcquisitionTimeout :: Param (Maybe Int)
poolAcquisitionTimeout =
  forall a. Text -> Default a -> ValueFormat a -> Value a -> Param a
value
    Text
"How long it takes until the attempt to connect is considered timed out"
    (forall a. Show a => a -> Default a
showable (forall a. a -> Maybe a
Just Int
10))
    forall a. ValueFormat a
unformatted
    (forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (forall a b. (RealFrac a, Integral b) => a -> b
round forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. forall a. Num a => a -> a -> a
(*) Rational
1000000 forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. forall a b. (Real a, Fractional b) => a -> b
realToFrac @DiffTime @Rational) forall a. LenientParser a => Value a
implicitlyParsed))

-- |
-- Server host.
host :: Param ByteString
host :: Param ByteString
host =
  forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Text -> ByteString
Text.encodeUtf8 forall a b. (a -> b) -> a -> b
$
    forall a. Text -> Default a -> ValueFormat a -> Value a -> Param a
value
      Text
"Server host"
      (forall a. (a -> Text) -> a -> Default a
explicitlyRepresented forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id Text
"127.0.0.1")
      forall a. ValueFormat a
unformatted
      forall a. LenientParser a => Value a
implicitlyParsed

-- |
-- Server port.
port :: Param Word16
port :: Param Word16
port =
  forall a. Text -> Default a -> ValueFormat a -> Value a -> Param a
value
    Text
"Server port"
    (forall a. Show a => a -> Default a
showable Word16
5432)
    forall a. ValueFormat a
unformatted
    forall a. LenientParser a => Value a
implicitlyParsed

-- |
-- Username.
user :: Param ByteString
user :: Param ByteString
user =
  forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Text -> ByteString
Text.encodeUtf8 forall a b. (a -> b) -> a -> b
$
    forall a. Text -> Default a -> ValueFormat a -> Value a -> Param a
value
      Text
"Username"
      (forall a. (a -> Text) -> a -> Default a
explicitlyRepresented forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id Text
"postgres")
      forall a. ValueFormat a
unformatted
      forall a. LenientParser a => Value a
implicitlyParsed

-- |
-- Password.
password :: Param ByteString
password :: Param ByteString
password =
  forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Text -> ByteString
Text.encodeUtf8 forall a b. (a -> b) -> a -> b
$
    forall a. Text -> Default a -> ValueFormat a -> Value a -> Param a
value
      Text
"Password"
      (forall a. (a -> Text) -> a -> Default a
explicitlyRepresented forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id Text
"")
      forall a. ValueFormat a
unformatted
      forall a. LenientParser a => Value a
implicitlyParsed

-- |
-- Database name.
database :: Param ByteString
database :: Param ByteString
database =
  forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Text -> ByteString
Text.encodeUtf8 forall a b. (a -> b) -> a -> b
$
    forall a. Text -> Default a -> ValueFormat a -> Value a -> Param a
value
      Text
"Database name"
      (forall a. (a -> Text) -> a -> Default a
explicitlyRepresented forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id Text
"postgres")
      forall a. ValueFormat a
unformatted
      forall a. LenientParser a => Value a
implicitlyParsed